August 02, 2013
Server Monitor little dirty script.Ping script monitoring with list.
This is a simple script to monitor servers using ping. It’s loaded from a list (configuration is provided).
#!/bin/bash ###################################################################################### # Derek Demuro, this script is given as is, CopyLEFT # ###################################################################################### ###################################################################################### # README LEAME # ###################################################################################### # This script will run and ping each server in the list domain or ip, and if error # mail will be sent to address. # ############################To Set Up################################################# # # To set this script up, you'll need to add it to a cronjob to run on boot # Most linux distros will allow a param <a href="https://twitter.com/reboot" class="twitter-atreply ext">@reboot<span class="ext"><span class="element-invisible"> (link is external)</span></span></a> /(path)/servermon.sh # So... crontab -e # At the bottom add: <a href="https://twitter.com/reboot" class="twitter-atreply ext">@reboot<span class="ext"><span class="element-invisible"> (link is external)</span></span></a> /(path)/servermon.sh # REMEMBER TO ADD EXECUTABLE BIT TO THE FILE (777 Permissions) ###################################################################################### # SCRIPT CONFIGURATION # ###################################################################################### ### List of servers to check connection with readonly SERVERLIST='serverList.txt' ### Where should the log be saved? readonly LOGNAME='servermonitor.log' ### Who should we mail? readonly MAILTO='mail@gmail.com' ### How many pings before we call it dead readonly PINGCOUNT=2 ### How much time between check's? readonly SLEEPTIME=5 ### How many records to keep readonly CLEARLOGTMS=1000 ###################################################################################### #################################FUNCTIONS START################################ ###Function to clear the log function clearLog() { echo 'Log cleared' > $LOGNAME echo 'Script will run ' $1 ' times then will clear itself'>> $LOGNAME return 0 } #################################FUNCTIONS FINISH################################ #################################MAIN SCRIPT FUNC################################ while [ TRUE ]; do #add 1 to times times=`expr $times + 1` ##CLEAR THE LOG if [ $times -eq $CLEARLOGTMS ]; then clearlog $times=0 fi ##Run script for every line in serverList cat $SERVERLIST | while read line do # check if there are no blank lines if [ ! -z $line ]; then ping -c 2 $line > /dev/null if [ "$?" -ne 0 ]; then echo -e "\e[00;31m`date +'%Y-%m-%d %H:%M:%S'` Something wrong with the server: $line\e[39m" echo "`date +'%Y-%m-%d %H:%M:%S'` Server has gone DOWN!" | mail -s "Server $line is DOWN `date +'%Y-%m-%d %H:%M:%S'`" $MAILTO # Or do send out mail else echo -e "\033[38;5;148m`date +'%Y-%m-%d %H:%M:%S'` All good: $line\033[39m" fi fi done ##We sleep till new run sleep $SLEEPTIME doneDownload “Connection Monitoring Script” connMonitor.sh_.zip – Downloaded 416 times – 1.26 KB