在日常工作中,我们经常会定期的检查各个服务器的状态,通过此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
#邮件发送检测结果