群晖NAS遇到断电自动关机
前置条件
需要一台UPS(品牌功能不限,只需续航5分钟以上就可以)
实现功能的想法
通过监控网卡的状态来达到目的。 网卡连接的网关并没有UPS保护,因为断电时,网卡会出现离线的状态,当监控到网卡的离线状态时,发出关机命令既可实现安全保护目的。
具体实施的步骤
开启群晖Linux的SSH登陆
登陆群晖管理后台
安装Putty或是Xshell远程登陆上群晖
我这里用的是sa账户登陆的,把脚本文件也放到了sa根目录下。
检测群晖NAS的网卡状态,我的NAS有四个千兆口,查询
root@DataStore:~# ls /sys/class/net/
docker0 docker7cb2ffc dockerf1962b8 dockerf6d9158 eth0 eth1 eth2 eth3 lo sit0
root@DataStore:~#
这里有eth0~eth3四个网卡
查询网卡的状态
root@DataStore:~# cat /sys/class/net/eth0/operstate
down
root@DataStore:~# cat /sys/class/net/eth1/operstate
up
root@DataStore:~#
up在线,down离线,这样就很容易判断了
创建脚本命令:
vim upscheck.sh
1 #!/bin/bash
2
3 #statusFile=~sa/.electricity.status;
4
5 # 判断文件是否存在。如果不存在就创建默认文件
6 #if [ ! -f "$statusFile" ]; then
7 # echo "file is not exists! I will create!";
8 # $(echo "off-line" > $statusFile);
9 #fi
10
11 # 读取上一次检测的结果
12 #status=$(cat $statusFile);
13 logFile=~sa/poweroff.log;
14
15 eth0=$(cat /sys/class/net/eth0/operstate);
16 eth1=$(cat /sys/class/net/eth1/operstate);
17 eth2=$(cat /sys/class/net/eth2/operstate);
18 eth3=$(cat /sys/class/net/eth3/operstate);
19
20 # 判断4张网卡是不是都是离线的状态,如果离线了,说明交换机没电了,就要关机了
21 if [[ "$eth0" == 'up' || "$eth1" == 'up' || "$eth2" == 'up' || "$eth3" == 'up' ]]; then
22 # 网卡有在线,交换机有电,则记录在线状态到文件
23 #$(echo "on-line" > $statusFile);
24 echo "Power supply is normal, system is normal.";
25 else
26 #$(echo "off-line" > $statusFile);
27
28 # 所有的网卡都离线了,马上关机
29 log="Network offline power supply abnormal, system shutdown now!";
30 echo "[`date`]$log" >> $logFile;
31 $(shutdown -h now);
32 fi
创建计划任务
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfjfegf
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01