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
fi2、检查多台主机是否存活
服务器列表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