本帖最后由 kanglehao 于 2024-5-15 10:22 编辑
众所周知,群晖是自带有自动关机功能的,但是设置了每天自动关机的话,经常遇到下载任务没完成,或者上传流量大时候是不适合立马关机的,所以写了这个脚本,当网络流量高时候取消自动关机,让自动关机更智能些,当然这需要群晖有python和pip环境,在运行之前,请确保已经安装了psutil库。如果没有安装,可以使用pip install psutil命令进行安装。
代码如下:
[Python] 纯文本查看 复制代码 import os
import time
import psutil
from datetime import datetime, timedelta
def check_network_traffic():
net_io = psutil.net_io_counters()
bytes_sent1 = net_io.bytes_sent
bytes_recv1 = net_io.bytes_recv
time.sleep(1)
net_io = psutil.net_io_counters()
bytes_sent2 = net_io.bytes_sent
bytes_recv2 = net_io.bytes_recv
sent_speed = (bytes_sent2 - bytes_sent1) / 1024
recv_speed = (bytes_recv2 - bytes_recv1) / 1024
return sent_speed + recv_speed
def schedule_shutdown():
for _ in range(10):#总共循环检测10次
network_traffic = check_network_traffic()
if network_traffic < 50: # 设置网络流量阈值,单位KB/s
os.system('shutdown -h now') # 关机
break
else:
print('网络流量较大,取消本次关机')
time.sleep(60) # 等待1分钟后再次检测网络流量
if __name__ == '__main__':
schedule_shutdown()
放到服务器后,在控制面板——计划任务——执行自定义脚本中设置即可
|