Howto: Linux Configure Pass-Thru Print

in Categories Linux, Troubleshooting last updated June 29, 2006

Passthrough print is the process of having a UNIX (or similar) host program print on the printer attached to your terminal (or PC running terminal emulation). Its advantages are:

=> It prints where the user is, without requiring complicated procedures to equate printers with users.
=> It works over direct serial, modem, multiplexor, TCP/IP, etc.
=> It is immediate.

This document covers implementation of passthrough print on a UNIX/Linux host system, where this feature is not already enabled.

It worked for me and it may be helpful to someone out there 🙂

Where does Apache server store its configuration files?

in Categories Apache, FAQ, Linux, UNIX last updated June 28, 2006

Different Linux distributions and/or UNIX operating system, and control panels stores Apache web server configuration file at different locations. There are different ways to locate configuration file.

Apache is, by default, installed in /etc/httpd directory. But this path also depends on how apache has been compiled. Default configuration file name httpd.conf.

Using httpd command

To find the location where apache is installed and to print configuration file location, run the following command:
# httpd -v

Here is the output from my Fedora Core/RedHat (RHEL) Linux server:

Server version: Apache/2.0.54
Server built:   Jan 17 2006 06:36:00
Server's Module Magic Number: 20020903:9
Architecture:   32-bit
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

HTTPD_ROOT points to default location /etc/httpd and line SERVER_CONFIG_FILE points to configuration file conf/httpd.conf. So the path is /etc/httpd/conf/httpd.conf

If you are using Debian Linux try apache-perl:

# apache-perl -V

cPanel/Plesk Control Panel

If you are using third party control panel, then you can find out Apache configuration file inside your /home/username/ directory or /var/www/vhosts/ directory.

Using find command

This is an old good (read as geekey) classic way to locate httpd.conf file:
# find / -name 'httpd.conf' -print

You may have to wait for few seconds/minute to search complete. Or try out locate command:
# locate httpd.conf

Solaris 10 6/06 Released with ZFS support and available for download

in Categories News, Solaris, UNIX last updated June 28, 2006

I can’t wait to get my hands dirty with new release+ZFS… 😀

Finally new updated Solaris 10 6/06 Release with ZFS is here. You can download it from Sun’s web site.

According to Sun blog, it has following features:
* ZFS, Sun’s revolutionary new filesystem
* Predictive Self Healing for x64 systems
* Predictive Self-Healing SNMP trap support
* Postgres bundled
* vold service conversion to SMF
* IPv6 for IPFilter
* More UDP and TCP/IP performance improvements
* In-kernel SSL proxy for SSL performance
* PCI Express support on x86 systems including hotplug
* Native SATA framework
* gnome-pilot support for PDA synchronization
* Xorg 6.9
* Realplayer
* See the official page for more info about features: What’s New in the Solaris 10 6/06 Release.

Fedora core installing package groups with yum

in Categories Linux, RedHat/Fedora Linux last updated June 27, 2006

yum is an interactive tool or automated update program which can be used for maintaining systems using rpm (read as RedHat and friends).

It allows you to install single package or group of package. For example let us say you are running a web server with PHP+MySQL. Now you need complete development environment i.e gcc C/C++ compilers, subversion cvs, perl and related libraries. You can install them in one shot with the following command:
# yum groupinstall 'Development Tools'

You can remove all developer tools with the following command:
# yum groupremove 'Development Tools'

Or better update all tools to latest version:
# yum groupupdate 'Development Tools'

You can obtain list of all groups with the following command:
# yum grouplist | less


Installed Groups:
   Compatibility Arch Support
   MySQL Database
   PostgreSQL Database
   System Tools
   Text-based Internet
   Web Server
Available Groups:
   Administration Tools
   Authoring and Publishing
   Compatibility Arch Development Support
   DNS Name Server
   Development Tools
   Engineering and Scientific
   FTP Server
   GNOME Desktop Environment
   GNOME Software Development
   Games and Entertainment
   Graphical Internet
   Java Development
   KDE (K Desktop Environment)
   KDE Software Development
   Language Support
   Legacy Network Server
   Legacy Software Development
   Mail Server
   Network Servers
   News Server
   Printing Support
   Server Configuration Tools
   Sound and Video
   Windows File Server
 X Software Development
   X Window System
   XFCE Software Development

You can also gather information about all packages that belongs to a group:
# yum groupinfo 'Development Tools'

This is a handy feature, to install or remove software(s). If any one has more information about similar options (w/o front-end) for apt-get command, then please comment it back below.

See also:

Howto: Building Linux virtual private server (VPS) with VServer software

in Categories Howto, Linux last updated June 27, 2006

VServer is use to create a virtual private server (VPS). Sukrit Dhandhania show us how to build VPS quickly with VServer.

FTA “…BSD users can improve system security with that operating system’s jail mechanism, which creates a partition of resources, thereby creating a logical barrier between services running inside different such jails. Under Linux, an application called Linux-VServer implements pretty much the same functionality. It partitions a system’s resources — namely CPU, memory, hard disk, and network — so that processes inside of the partitions are limited to their context, which makes denial of service attacks less likely to succeed. This is one reason why many hosting companies use virtual servers…

Linux-VServer allows you to create virtual private servers and security contexts, which operate like normal Linux servers but allow many independent servers to be run simultaneously in one box at full speed. It utilizes operating system-level virtualization to enable the kernel to partition resources…”.

Read more…

You can also use XEN or VMWARE server (free version) for same purpose 🙂

Linux Scalability: SGI builds 1,024 processors based super computer

in Categories Linux, News last updated June 27, 2006

SGI Shatters Linux Scalability Records Yet Again With 1,024 Processors Running Under Single Copy of Linux.

FTA “…On its powerful and acclaimed SGI(R) Altix(R) 4700 blade platform and a beta version of SUSE(R) Linux Enterprise Server 10 from Novell, SGI demonstrated a single system image (SSI) running on a world-record 1,024 processors. Until that moment, the largest Linux SSI operated on 512 processors — another SGI record…”

Wow! Administrating such box will be fun (or may be pain) 😉

Read more at: Lxer news

Why Joyent moving to Sun Niagra servers and OpenSolairs

in Categories FreeBSD, Links, Linux, Solaris, UNIX last updated June 24, 2006

This is a great read about how they are moving to Sun Niagra server and open Solairs from DELL+FreeBSD/Linux combination!

FTA, “…Start with a few white box PCs built from spare parts, add a distribution of Linux, sprinkle in some great search technology, wave of the hand and capital and voila: you have a data-center down by the river …

Oh, and hardware? The new(ish) Sun Niagra servers are practically the size of a 17 inch laptop and much more interesting. They provide 4-5 times the compute power of a comparable Dell server and use far less power. And heat? It’s getting cold in here…

So we woke up. Joyent has begun to use Sun technologies in a number of ways. We’ve been aggressively replacing our Dell hardware running FreeBSD and Ubuntu with a combination of Sun Opteron and UltraSparc servers running OpenSolaris…”

Read more at: Leviathan toys with Zeus

Linux/UNIX: Sharing A CUPS Printer Queue

in Categories Linux, Networking, UNIX, Windows last updated June 23, 2006

Common Unix Printing System (CUPS) is a modular computer printing system for Apple OS X, Linux and UNIX like operating systems. It allows Linux computer to act as a printer server. As a server it accepts printing requests from all client computer and send them to actual printer. It does printing accounting and other important stuff.

Poll: Which Webserver do you use?

in Categories Apache, News last updated June 23, 2006

Our last poll asked readers of this blog the question:

Are you going to try or upgrade to enterprise grade Ubuntu Linux (code-named Dapper Drake)?

Thanks to everyone, total 338 people responded to the poll. Results are as follows:

  • 51% said they are happy with current setup/Linux/BSD distribution
  • 33% said they are willing to upgrade
  • 15% said they are not sure or they are not going to upgrade

It looks like people are following old mantra: If It’s Not Broken, Don’t Fix It. Personally I will stick to *BSD or RHEL only.

New poll: Which Webserver do you use?

Again I am using Apache 1.3x and lighttpd (for rails apps). I am interested to see what fellow sys admins are using and why?

Examining gcc behavior

in Categories C Programming last updated June 22, 2006

Recently my friend highlighted something that can be use to examining gcc complier behavior.

You can pass following options to gcc

  • -v : Display the commands executed to run the stages of compilation on screen.
  • -x language : I am using C
  • /dev/null : Use /dev/null as input file

For example when I type the following command:

gcc -v -x c /dev/null


Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-awt=gtk-default --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0- --enable-mpfr --disable-werror --with-tune=i686 --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.0.4 20060507 (prerelease) (Debian 4.0.3-3)
 /usr/lib/gcc/i486-linux-gnu/4.0.4/cc1 -quiet -v /dev/null -quiet -dumpbase null -mtune=i686 -auxbase null -version -o /tmp/ccMVab5b.s
ignoring nonexistent directory "/usr/local/include/i486-linux-gnu"
ignoring nonexistent directory "/usr/include/i486-linux-gnu"
#include "..." search starts here:
#include <...> search starts here:
End of search list.
GNU C version 4.0.4 20060507 (prerelease) (Debian 4.0.3-3) (i486-linux-gnu)
        compiled by GNU C version 4.0.4 20060507 (prerelease) (Debian 4.0.3-3).
GGC heuristics: --param ggc-min-expand=81 --param ggc-min-heapsize=96075
 as -V -Qy --32 -o /tmp/ccyCAfmi.o /tmp/ccMVab5b.s
GNU assembler version 2.16.91 (i486-linux-gnu) using BFD version 2.16.91 20060413 Debian GNU/Linux
 /usr/lib/gcc/i486-linux-gnu/4.0.4/collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ /usr/lib/gcc/i486-linux-gnu/4.0.4/../../../../lib/crt1.o /usr/lib/gcc/i486-linux-gnu/4.0.4/../../../../lib/crti.o /usr/lib/gcc/i486-linux-gnu/4.0.4/crtbegin.o -L/usr/lib/gcc/i486-linux-gnu/4.0.4 -L/usr/lib/gcc/i486-linux-gnu/4.0.4 -L/usr/lib/gcc/i486-linux-gnu/4.0.4/../../../../lib -L/usr/lib/gcc/i486-linux-gnu/4.0.4/../../.. -L/lib/../lib -L/usr/lib/../lib /tmp/ccyCAfmi.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/i486-linux-gnu/4.0.4/crtend.o /usr/lib/gcc/i486-linux-gnu/4.0.4/../../../../lib/crtn.o
/usr/lib/gcc/i486-linux-gnu/4.0.4/../../../../lib/crt1.o: In function `_start':
../sysdeps/i386/elf/start.S:115: undefined reference to `main'
collect2: ld returned 1 exit status