在日常工作中,我们经常会定期的检查各个服务器的状态,通过此shell脚本系统可以定期的将每日服务器的检查结果发送到邮箱中,此脚本在正式环境中已稳定运行。

    因为我们需要通过邮件发送检测结果,首先必须在服务器上开启sendmail服务并设置为开机自启动,然后需要在/etc/mail.rc中设置相应的参数,/etc/mail.rc中参数的设置如下:

    set from=邮箱地址

    set smtp=smtp服务器的地址

    set smtp-auth-user=邮箱的用户名

    set smtp-auth-password=邮箱的密码

    set smtp-auth=login 设置登录方法

    文本serverlist按如下格式记录要检查的服务器

    服务器名称      服务器IP

    服务器健康状态检查脚本如下:

   #!/bin/bash
   #服务器检查脚本
   source /home/jack/.bash_profile
   #引用普通用户的环境变量
   list=/home/jack/shell/monitor/serverlist
   ip=`awk '{print $2}' $list `
   log=/home/jack/shell/monitor/logs/check_$(date +%F).log
   subject="服务器日常巡检结果"
   if [ `/usr/bin/sudo ls  /var/spool/mqueue/|wc -l` -ge 0 ];then
   sudo rm -rf /var/spool/mqueue/*
   fi
   #清空邮件队列
   >$log
   date|sed 's@CST@@g' >>$log
   for i in $ip
   do
   ping -c 4 $i >/dev/null 2>&1
   if [ $? -eq 0 ];then
   echo "`cat $list|grep $i|awk '{print $1}'` 检测正常!" >>$log
   else
   echo "`cat $list|grep $i|awk '{print $1}'` 检测失败!" >>$log
   fi
   done
   /bin/mail -s $subject <$log  n3h3aaaaa@163.com
   #邮件发送检测结果