1.创建供电检测脚本 ups.sh
vi ups.sh
填入以下内容,然后输入 :wq
保存
#!/bin/sh
while
ping -c 4 192.168.2.1 > /dev/null
[ $? -eq 0 ];
do
echo '供电正常 时间:'$(date) >> /var/log/ups.log
sleep 600
done
echo '供电异常,2分钟后重新检测 时间:'$(date) >> /var/log/ups.log
sleep 120
ping -c 4 192.168.2.1 > /dev/null
if [ $? -eq 0 ]
then
echo '供电正常 时间:'$(date) >> /var/log/ups.log
else
echo '供电异常,开始关机 时间:'$(date) >> /var/log/ups.log
shutdown -h now
fi
其中,192.168.2.1修改为你内网设备IP,保证其在市电断电后离线即可
基本每10分钟会ping一次内网设备,如果离线则在2分钟后重新ping一次,如果两次均检测离线,则开始关机(可根据自己的UPS供电时间调整)
检测日志会保存在 /var/log/ups.log
文件中
2.赋予可执行权限
chmod 777 ups.sh
或者
chmod a+x ups.sh
3.创建守护脚本,检测ups.sh
的正常运行
vi ups_sh.sh
填入以下内容,然后输入 :wq
保存
NUM=`ps -ef | grep ups.sh | grep -v grep |wc -l`; echo ${NUM}
if [ ${NUM} -lt 1 ];then
/usr/local/ups/ups.sh > /dev/null 2>&1 &
echo '开启供电检测脚本 时间:'$(date) >> /var/log/ups.log
fi
exit 0
其中,/usr/local/ups/ups.sh
为供电检测脚本的路径
日志保存在/var/log/ups.log
4.同样赋予可执行权限
chmod 777 ups_sh.sh
或者
chmod a+x ups_sh.sh
5.创建Cron定时任务
crontab -e
填入以下内容,然后输入 :wq
保存
*/5 * * * * /usr/local/ups/ups_sh.sh > /dev/null
其中 */5 * * * *
为每5分钟执行一次守护脚本
更详细的Cron定时任务的内容,请参考 《Linux创建cron定时任务》
/usr/local/ups/ups_sh.sh
为守护脚本的路径
6.断电关机后如何发送邮件通知
断电关机前发送邮箱通知必须满足两个条件
1)网关必须在UPS保护下,断电后主机仍然可以访问互联网(此时可以让脚本ping内网的其他断电离线的设备)
2)必须在linux系统设置好mail命令相关配置文件,如何配置详见《Linux下使用mail发送邮件》
此时,在ups.sh修改为如下
#!/bin/sh
while
ping -c 4 192.168.2.1 > /dev/null
[ $? -eq 0 ];
do
echo '供电正常 时间:'$(date) >> /var/log/ups.log
sleep 600
done
echo '供电异常,2分钟后重新检测 时间:'$(date) >> /var/log/ups.log
sleep 120
ping -c 4 192.168.2.1 > /dev/null
if [ $? -eq 0 ]
then
echo '供电正常 时间:'$(date) >> /var/log/ups.log
else
echo '供电异常,开始关机 时间:'$(date) >> /var/log/ups.log
echo "供电异常正在关机" | mail -s "供电异常" kissyou@love.com
sleep 10
shutdown -h now
fi
此时,关机前10秒会向kissyou@love.com邮箱发送 标题为 供电异常
,内容为 供电异常正在关机
的邮件,请将kissyou@love.com修改成你自己的邮箱
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)