1、检查主机是否存活:一旦主机ping不通,就发邮件。等到恢复就会再发次恢复邮件。
#!/bin/bash # check server poweron or poweroff & mail # 2014-03-21 set -u [ -e "/shell/logfile" ] || mkdir -p /shell/logfile ping -c 2 10.10.0.254 &> /dev/null if [ $? -eq 0 ]; then if [ -e "/shell/logfile/poweroff.txt" ]; then echo "power on" | mail -s "power on" samzhou@test.com rm -f /shell/logfile/poweroff.txt touch /shell/logfile/poweron.txt else touch /shell/logfile/poweron.txt fi elif [ ! $? -eq 0 ];then if [ -e "/shell/logfile/poweron.txt" ]; then echo "power off" | mail -s "power off" samzhou@test.com rm -f /shell/logfile/poweron.txt touch /shell/logfile/poweroff.txt else touch /shell/logfile/poweroff.txt fi fi
2、检查多台主机是否存活
服务器列表serverlist
.txt内容,servername:IP,一行一组。如:testserver:10.10.0.6。
#!/bin/bash # check server ok # 2014-02-26 set -u check_fun() { for host in $(cat /shell/serverlist.txt);do { servername=${host%:*} serverip=${host#*:} ping -c 2 $serverip &> /dev/null if [ $? -eq 0 ]; then status=up printf "\033[1;32m%-4s \033[0m%-14s%-16s\n" $status $servername $serverip else status=down printf "\033[1;31m%-4s \033[0m%-14s%-16s\n" $status $servername $serverip fi }& done
原文:http://samlinux.blog.51cto.com/7988157/1385191