之前买了一个UPS
,结果不支持群晖NAS
的断电关机,又不能退,只能想办法利用起来。
目前考虑的是通过ping
路由器,如果ping
不通了代表断电了,则进行关机操作。
脚本如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#!/bin/bash # 设置要ping的路由器IP地址 ROUTER_IP="192.168.1.1" # 设置ping的次数和超时时间 PING_COUNT=4 PING_TIMEOUT=5 # 日志文件路径 LOG_FILE="/var/log/power_check.log" # 函数:执行ping命令 function check_connection { ping -c $PING_COUNT -W $PING_TIMEOUT $ROUTER_IP > /dev/null 2>&1 return $? } # 第一次检测网络连接 check_connection # 检查ping命令的返回值 if [ $? -ne 0 ]; then # 第一次失败,等待2分钟后重试 sleep 120 check_connection # 检查第二次ping命令的返回值 if [ $? -ne 0 ]; then # 第二次还失败,记录日志并关机 echo "$(date): 网络连接中断,系统即将关机..." | tee -a $LOG_FILE poweroff else echo "$(date): 第二次检测,网络连接恢复正常" | tee -a $LOG_FILE fi else echo "$(date): 网络连接正常" | tee -a $LOG_FILE fi |
使用说明:
打开控制面板
—任务计划
—新增
—计划的任务
—用户定义的脚本
,在常规
选项卡,把用户改为root
:
在计划
选项卡这里,修改运行时间:
在任务设置
这里,把上面的脚本放上去就行了~
这个看起来有点安逸
@王光卫博客 是的,方便简单~~