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 Forwarding Login 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 transce

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 OR /etc/init.d/<service-name> status Example: 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 services The  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

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 OR  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. Example Create 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: '$@'"   e

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         OR                  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: Syntax GNU/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/timestamp then 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 modifie

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 ma