Created
November 28, 2012 22:29
-
-
Save davetromp/4165179 to your computer and use it in GitHub Desktop.
Revisions
-
davetromp revised this gist
Dec 2, 2012 . 1 changed file with 5 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -32,7 +32,11 @@ send(){ # subject message while : do wget --server-response --spider $url # checking the actual response is # better, because server me be running and returning pings while our # site could be down. This wget will only return exit 0 if response is # 200 ok #ping -c 1 $url | grep "0%" > /dev/null # if we get zero percent lost in the ping, all is well and we should get # exit status 0 on this last program run / exited if [ "$?" -eq 0 ] # so if we have exit status of zero then server is UP -
davetromp created this gist
Nov 28, 2012 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,64 @@ #!/bin/bash ################################################################################ # This script will check to see if a website is up/down by pinging the url # If there is no response an email wil be send via an external smtp mail server # If the site status is down an email will be send when the site is up again # set your check interval here :-) ############################################# interval=3600 # hour # begin status ; DO NOT CHANGE ################################################# stat=0 # this is the status UP; status 1 is DOWN # your url ##################################################################### url="localhost" # email settings ############################################################### send(){ # subject message toemail="[email protected]" fromemail="[email protected]" smtpserver="smtp.gmail.com" port=587 username="[email protected]" passw="YourVerySecretPassword" sendemail -f "$fromemail" -t "$toemail" -u "$1" -m "$2" -s \ "$smtpserver:$port" -xu "$username" -xp "$passw" -o tls=yes -q } # check url #################################################################### while : do ping -c 1 $url | grep "0%" > /dev/null # if we get zero percent lost in the ping, all is well and we should get # exit status 0 on this last program run / exited if [ "$?" -eq 0 ] # so if we have exit status of zero then server is UP then # only if the current status is DOWN (1) then we want to notify # the new status up and change the stat variable accordingly if [ "$stat" -eq 1 ] then echo "UP | `date`" >> "$url-status.log" send "$url is UP" "UP | `date`" stat=0 fi else # same as above but the other way around if [ "$stat" -eq 0 ] then echo "DOWN | `date`" >> `echo "$url-status.log"` send "$url is DOWN" "DOWN | `date`" stat=1 fi fi sleep $interval done exit # Ciao #########################################################################