为群辉配置的UPS如果不支持群辉的断电通知,可以通过PING路由器的方式间接实现关机,即PING不通的情况下,再等一段时间PING,如果还是PING不通,则通知关机。来电开机则需要启用WOL功能,无公网IP的需要内网穿透。断电关机保护具体实现:
方法一:
控制面板-任务计划-新增计划的任务-用户自定义的脚本,每小时执行一次,脚本运行后如果PING不通,则休息10分钟又PING,还PING不通则关机。主要遗留问题:DSM老系统,计划的任务不能设置小时级别,只能每天运行,则断网关机后再开机就不起作用了,因为计划任务每天运行,下次运行时间是第二天才运行,需要开机后手动点一下运行计划才能运行。DSM7.0以上系统测试支持分钟级别设置。
#!/bin/sh
MonitorIP=192.168.1.1
DelayTime=600s
#关机等待时间10分钟60s
ping -c 1 $MonitorIP > /dev/null
ret=$?
if [ $ret -eq 0 ]
then
echo 'AC Power OK'
else
synologset1 sys warn 0x11600036
echo 'AC Power maybe off, checking again after 1 minutes'
sleep $DelayTime
ping -c 1 $MonitorIP > /dev/null
ret=$?
if [ $ret -eq 0 ]
then
synologset1 sys warn 0x11600037
echo 'Checkagain, AC Power OK'
else
synologset1 sys warn 0x11600035
poweroff
fi
fi
方法二:
1.群晖控制面板打开SSH,运行win10的命令行:
ssh administrator@192.168.1.1
群晖6.0以后限制了root权限,登录后再次输入
sudo -i
在password:再次输入密码(输入没有显示),回车变成了:~# 就拥有root权限了。
2、打开群晖控制面板-共享文件夹-新增-名称123-所在位置存储空间1-权限可读写。
3、打开群晖目录/volume1/123,把方法一的脚本复制过来,修改权限可执行,并测试
chmod -R 755 /volume1/123/power-ups.sh
/volume1/123/power-ups.sh
如果出现错误
No such file or directory
那就是格式问题,用NOTEPAD++重新保存。
4、把脚本文件复制到系统目录,
因为在用户共享目录可能会影响休眠,例如可放在/mnt目录。
cp -r /volume1/123/power-ups.sh /mnt
chmod -R 755 /mnt/power-ups.sh
5、修改系统定时文件crontab
cp -r /etc/crontab /volume1/123
修改内容:
在#minute hour mday month wday who command下面插入一行内容,在最后一列有时候会被系统删掉。
-
* * * * root /mnt/power-ups.sh
各个区段用 TAB 分隔
例:
MAILTO=””
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
#minute hour mday month wday who command
-
* * * * root /mnt/power-ups.sh
把crontab复制回系统目录
cp -r /volume1/123/crontab /etc
方法三
配置大容量UPS,按市电停电12小时备足容量,这样UPS能撑过12小时,一般停电也恢复了。
附:硬盘休眠调试方法
进入控制面板-硬件和电源-硬盘休眠,选中 启用硬盘休眠日志,遇到问题选 无法休眠,这样系统会产生检测日志,供我们分析,找到无法休眠的进程。
ssh admin@192.168.1.3[这里IP是你的群晖的IP]
然后sudo su -,进入root
cd /var/log
tail -f hibernationFull.log |grep -v -e proc -e tmpfs -e WRITE