目前有家用NAS一台,已经使用了UPS的usb接口,而ubuntu服务器的电源从UPS中供电,但是无法获取到断电的情况。于是在网上找了一个算了相对靠谱的方式来做。
通过crontab定时检测,路由器是否与目前ubuntu服务器ping通来看是否断电。
crontab -e
输入定时时间跟指令
*/5 * * * * /home/jack/synology/ac_detect.sh
ac_detec.sh脚本内容(该内容来自某个论坛的帖子,具体地址忘记了,后续找到再补齐)
#!/bin/bash
MonitorIP=192.168.81.1
#接在市电上,需要一直保持开机状态的设备地址,如MonitorIP使用的是路由器地址网关地址192.168.81.1
DelayTime=60s
#关机等待时间1分钟60s,2分钟120s,3分钟180s
ping -c 1 $MonitorIP > /dev/null
ret=$?
if [ $ret -eq 0 ]
then
echo ' AC Power OK ! '
else
echo ' AC Power maybe off, checking again after 1 minutes ! '
sleep $DelayTime
ping -c 1 $MonitorIP > /dev/null
ret=$?
if [ $ret -eq 0 ]
then
echo ' Check again, AC Power OK ! '
else
echo 'poweroff'
sudo -S poweroff << EOF
你的密码=====》特别要留意这个地方,因为普通用户是无法直接调用poweroff指令进行关机的,因此需要提供密码
EOF
fi
fi
来自:http://blog.csdn.net/lan120576664