Skip to main content


Showing posts from June, 2013

CentOS / Redhat : Configure CentOS as a Software Router with two interfaces

Linux can be easily configured to share an internet connection using iptables. All you need to have is, two network interface cards as follows:
a) Your internal (LAN) network connected via eth0 with static ip address
b) Your external WAN) network is connected via eth1 with static ip address  ( public IP provided by ISP ) Please note that interface eth1 may have public IP address or IP assigned by ISP. eth1 may be connected to a dedicated DSL / ADSL / WAN / Cable router: Step # 1: Enable Packet ForwardingLogin as the root user. Open /etc/sysctl.conf file # vi /etc/sysctl.conf
Add the following line to enable packet forwarding for IPv4: net.ipv4.conf.default.forwarding=1
Save and close the file. Restart networking: # service network restart
Step # 2: Enable IP masquerading
In Linux networking, Network Address Translation (NAT) or Network Masquerading (IP Masquerading) is a technique of transceiving network traffic through a router that involves re-writing the source and/or…

CentOS | RHEL: Check If A Service Is Running Or Not

We can use service command to get the status of services running on the system. It runs a System V init script in as predictable environment as possible, removing most environment variables and with current working directory set to /.

Syntax is:

service <service-name> status


/etc/init.d/<service-name> status


Find, out if a service called httpd (Apache Web Server) is running on CentOS OR RHEL. Open a terminal or login using ssh, enter:

  #  service httpd status

Sample outputs:

[root@myserver ~]# service httpd status

httpd (pid  21585) is running...

Find out status of all servicesThe service --status-all command runs all init scripts, in alphabetical order, with the status command:  #  service --status-all Sample output:-

[root@myserver ~]# service --status-all

anacron is stopped

atd is stopped

auditd is stopped

cpuspeed is stopped

crond (pid 3442) is running...

cupsd (pid 5004) is running...

gpm (pid 3316) is running...

hald is stopped

httpd is stopped

ipmi_msghandler module not load…

Linux: Find Out Directory Size Command

To get the size of a Directory in Linux, use du command. du command is used to find the file space usage & summarize disk usage of each file/directory.

To find the size of /usr directory:

  du /usr

 Pass -s option to see the total disk space summary & -h option for human readable format.

  du -sh /usr

We can also list the contents of the directory (whether file or directory) with size:-

du -sh /usr/*

Sample output:
[root@myserver ~]# du -sh /usr/*
71M     /usr/bin
8.0K    /usr/etc
8.0K    /usr/games
87M     /usr/include
122M    /usr/java
1.8M    /usr/kerberos
535M    /usr/lib
199M    /usr/lib64
12M     /usr/libexec
212M    /usr/local
17M     /usr/sbin
563M    /usr/share
57M     /usr/src
4.0K    /usr/tmp
48M     /usr/X11R6

Shell Script: Find Number Of Arguments Passed

Many times , when we create shell scripts we try to do repetitive tasks through functions. Some functions take arguments & we have to check the no. of arguments that are passed to it.

Each bash shell function has the following set of shell variables:
[a] All function parameters or arguments can be accessed via $1, $2, $3,..., $N. [b] $* or $@ holds all parameters or arguments passed to the function. [c] $# holds the number of positional parameters passed to the function. [d] An array variable called FUNCNAME ontains the names of all shell functions currently in the execution call stack. ExampleCreate a shell script as follows: #!/bin/bash # Purpose: Demo bash function # ----------------------------- ## Define a function called test() test(){   echo "Function name:  ${FUNCNAME}"   echo "The number of positional parameter : $#"   echo "All parameters or arguments passed to the function: '$@'"   echo }
## Call or invoke the function ## ## Pass the parameters or a…

Linux : Shell Remove Empty Lines

Many time we face situations where we have many empty lines in a file or script. Then how can we delete only those empty lines & make the file compact?

I tried following steps & they worked like charm. 
for deleting all empty lines from the file input.txt, run the following command:

sed command

                sed '/^$/d' input.txt > output.txt
sed -i '/^$/d' input.txt

awk command                 awk 'NF > 0' input.txt > output.txt

Linux Find Command: Find Files Modified On Specific Date

There are many situations in which we have to find out all files that have been modified on a specific date using find command under Linux.

There are two ways to list files in given directory modified after given date of the current year. The latest version of GNU/find command use the following syntax:

SyntaxGNU/find latest version:
find /path/to/dir -newermt "date"
find /path/to/dir -newermt "May 13"
find /path/to/dir -newermt "yyyy-mm-dd"
## List all files modified on given date
find /path/to/dir -newermt yyyy-mm-dd ! -newermt yyyy-mm-dd -ls
### print all *.sh ###
find /path/to/dir -newermt "yyyy-mm-dd" -print -type f -iname "*.sh" The other way of doing this works on the versions of find before v4.3.3: touch -t 02010000 /tmp/timestamp find /usr -newer /tmp/timestampthen we can remove the reference file: rm -f /tmp/stamp$$
To find out all Shell Script files (*.sh) in /home/linux/scripts that have been modified on 2013-05-01 (01/May/2013), enter…

Passwordless SSH logins

There are a few cases where having passwordless access to a machine is quite convenient or necessary. I'm looking up for commands that I can just copy and paste to do it right quick. Below are the steps:-

1. Generate key pair:-

       One of the login modes of SSH is to use a SSH key based authentication. A key pair is made up of both a private and a public key. The private key is kept on your local machine very securely while your public key is what you distribute to all the machines you want to log in to. There are a few flavors of keys you can generate, rsa1 (for SSH1), dsa (SSH2), or rsa (SSH2). Most linux admins like DSA. You can (and should) associate a password with your key pair, so that only you can use it even if someone else manages to gain access to your account. Password for key is not recommened when you want to use it for daily tasks or tasks that are done through cron jobs. If you have more than one key pair, using the same password for all key pairs will make them a…