Linux Shell Script For Monitoring System network with ping command

Here is a simple script to monitor server IP status with lock. Script will send only 1 email when IP is not reachable.If it came back, it will send another mail

 

#!/bin/bash
NOTIFYEMAIL=ben.george@example.com
SENDEREMAIL=smcadmin@example.com
SERVER=172.16.200.51
PAUSE=2
FAILED=0
DEBUG=0
COUNT=1

while true
do
CS=$(ping -c $COUNT $SERVER | grep ‘received’ | awk -F’,’ ‘{ print $2 }’ | awk ‘{ print $1 }’)
if [ $DEBUG -eq 1 ]
then
echo “STATUS = $CS”
echo “FAILED = $FAILED”
if [ $CS -ne 0 ]
then
echo “$SERVER is up”

elif [ $CS -eq 0 ]
then
echo “$SERVER is down”
fi
fi
if [ $CS -ne 0 ] && [ $FAILED -eq 0 ]
then
FAILED=1
if [ $DEBUG -eq 1 ]
then
echo “$SERVER is back up”
fi
if [ $DEBUG = 0 ]
then
echo “$SERVER is came up at $(date)” | /bin/mailx -s “$SERVER is came up at ” -r “$SENDEREMAIL” “$NOTIFYEMAIL”
fi
elif [ $CS -eq 0 ] && [ $FAILED -eq 1 ]
then
FAILED=0
if [ $DEBUG -eq 1 ]
then
echo “$SERVER failed”
fi
if [ $DEBUG = 0 ]
then
echo “$SERVER went down $(date)” | /bin/mailx -s “$SERVER went down ” -r “$SENDEREMAIL” “$NOTIFYEMAIL”
fi
fi
sleep $PAUSE
done

Nov.26

Automount samba shares from fstab

To Configure Automount of Cifs/Smbfs (windows share) ,make sure you installed cifs-utils add the share details to /etc/fstab

 

Samba share , password protected shares
//host/share /mnt/share cifs defaults,credentials=/etc/fstab_credentials 0 0

 

And add the authentication detais to /etc/fstab_credentials. If the file not there, create one with below details

 

username=foo
password=bar

 

After that issue mount -a to re-read fstab

Nov.19

Redhat -6 Local and Online Repo creation script

Hi Friends.

 

I was testing some backup software’s, each day i used to create separate Virtual Machine on my Vmware. After installation of RHEL 6, configuring local and online repos are my first job (I am bit lazy to do this every time).

 

For that i created a shell script to do this things automatically.

 

I am not a scripting expert. Here is my script. I tested with Rhel6 only

 

Nov.17

Some Useful Linux Commands

  1.  Linux Sed command to change values inside file

# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config

 

  1. PERL script to check Linux machine type

# perl -MConfig -e ‘print “$Config{myarchname}\n”;’

 

  1. To check Fibre cable status – Simple script

checkfiber.sh
#!/bin/sh
ls /sys/class/fc_host | while read i; do
echo $i
cat /sys/class/fc_host/$i/port_state
done

Nov.12

Linux Tips and Tricks

Delete files that are ‘X’ days old

Sometimes ins linux, you want to clear out older files in a directory. One example could be if you have a security system and it continuously writes video files to a directory on your NAS until it fills it up.you have figured out that it keep a week’s collections of videos, there will be plenty of space for other users. So, here is a command that will delete all files that are older than seven days . So remember to execute this command with caution as it can delete your important data if not used correctly

 

#find /path/to/files/ -type f -mtime +7 -exec rm -rf {} \;

 

find : This command will search for files.
/path/to/files : This is the top level directory to start searching
-type f : This ensures we don’t remove directories , but only files.
-mtime +7 : Removes files older than ‘7’ days. Change to ‘+14’ to delete files older than two weeks.
-exec : This indicates what to do with files we found.
rm -rf  :  Removes the files recursively and forcefully.
{} : This represents each file we find.
\; : This is the end of exec.
 
On successfully testing the above command you can create a Cron job to automate this task