如果你的 UPS 不支持通信功能,在断电后如何自动关机呢?此时可以建立如下脚本,定时向另一台网络设备发送 ping 命令,同时将该网络设备直接接到市电,在市电断电后,该设备关机,NAS 收不到反馈,延迟一定时间后启动关机过程。网络设备可以是你的路由器,如果路由器需要接到 UPS,也可以是另一台不再使用的网络设备如废弃的电视盒等,要保证该设备长期由市电直接供电,否则将导致 NAS 关机。

 

(1)首先创建如下脚本,命名为 powermon.sh:

#!/bin/sh

MonitorIP=192.168.1.203
DelayTime=60s

if ping $MonitorIP -W 2 -w 2 -c 2 | grep '^[0-9].*ms$' > /dev/null
then
echo "Power on."
else
synologset1 sys warn 0x11600036
sleep $DelayTime
if ping $MonitorIP -W 2 -w 2 -c 2 | grep '[0-9].*ms$' > /dev/null
then
synologset1 sys warn 0x11600035
else
synologset1 sys warn 0x11600037
poweroff
fi
fi

exit 0

上面脚本中的 192.168.1.203 为你的路由器或其它长期由市电直接供电的网络设备的 IP 地址,60s 为延迟时间,表示一旦检测到断电,将等待 60 秒,然后关机,如果 60 秒内恢复了供电,将不再关机。所以该值需根据你的 UPS 能支撑的时间来决定。

(2)将上述脚本保存到 NAS 的合适位置,如 /usr/syno/sbin 下,为其添加执行权限:

chmod +x /usr/syno/sbin/powermon.sh

在 NAS 管理界面,打开“控制面板”,选择“任务计划”,点击“新增”并选择“用户定义的脚本”,指定该脚本,并选择每天的 00:00 到 23:59,每 1 分钟执行一次,可以根据你的 UPS 可坚持的时间修改,比如 5 分钟, 10 分钟等。

(3)也可以不创建任务计划,而是编辑 /etc/crontab 文件,在最后插入一行:

*   *   *   *   *   root    /usr/syno/sbin/powermon.sh

各个区段用 TAB 分隔。这个也是每分钟执行一次,可以根据你的 UPS 可坚持的时间修改,比如 5 分钟, 10 分钟等。

 

假如你的 ups 可坚持 15 分钟,假如关机过程需要 2分钟,这样你的执行频度可以设为 5 分钟一次,延迟时间也可设 5分钟一次。这样断掉后,最迟 12 分钟完成关机。

 

 

关机后又恢复供时如何操一般可在 BIOS 中设置,可以保持关机状态,也可以自动开机。
转载自:http://www.gebi1.com/thread-246010-1-1.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据