收起左侧

非智能ups自动关机功能

7
回复
1612
查看
[ 复制链接 ]

2

主题

1

回帖

0

牛值

江湖小虾

2024-12-28 03:01:18 显示全部楼层 阅读模式

之前在第三方套件中心 使用过的软件

软件判断ups功能

带有协议的ups普遍偏贵😂这个软件是通过判断主机外网连接断开 设置多长时间后发送关机指令的,

ups只给飞牛云设备供电 断 电情况猫和路由器肯定没电 。

希望可以上架这个套件,或者官方可以增加这个功能。

收藏
送赞 3
分享

2

主题

1

回帖

0

牛值

江湖小虾

2024-12-28 11:53:38 楼主 显示全部楼层
顶顶内容,照顾一下这种拿功能

1

主题

2

回帖

0

牛值

江湖小虾

社区上线纪念勋章

2025-3-5 13:31:27 显示全部楼层
用代码和计划任务就可以实现啊

3

主题

3

回帖

0

牛值

江湖小虾

2025-3-11 13:14:33 显示全部楼层
有一种单独带协议的模拟ups小工具,插在ups之前,断 电给nas发送信号

1

主题

2

回帖

0

牛值

江湖小虾

2025-8-18 20:47:49 显示全部楼层
的确我记得群晖里面好像也有这个功能

1

主题

6

回帖

0

牛值

江湖小虾

fnOS1.0上线纪念勋章

2025-9-13 10:51:34 显示全部楼层
目前我采用的是飞牛OS 1panel的定时任务,每3分钟执行一次脚本。如下: #!/bin/bash # 路由器IP(请替换为你的路由器实际IP,如192.168.1.1) ROUTER_IP="192.168.1.1" # 定义ping检测函数 ping_router() {     # -c 1:发送1个ping包;-W 2:超时2秒;成功返回0,失败返回非0     ping -c 1 -W 2 $ROUTER_IP > /dev/null 2>&1     return $? }  # 第一次ping检测 echo "第一次检测路由器连接..." if ping_router; then     echo "✅ 网络正常,脚本结束"     exit 0 else     echo "❌ 第一次ping不通,等待3秒后重试..."     sleep 3  # 间隔3秒再检测,避免网络波动误判     # 第二次ping检测     echo "第二次检测路由器连接..."     if ping_router; then         echo "✅ 第二次ping通,网络恢复,脚本结束"         exit 0     else         echo "❌ 连续2次ping不通,执行关机命令..."         # 不同NAS关机命令可能不同,以下是常见命令(根据你的NAS选择)         # 飞牛NAS:         # sudo shutdown -h now         shutdown -h now     fi fi
排版看不明白。  详情 回复
2025-10-17 14:06

3

主题

9

回帖

0

牛值

江湖小虾

2025-10-17 14:06:57 显示全部楼层
小朋友_KQdZ0 发表于 2025-9-13 10:51
目前我采用的是飞牛OS 1panel的定时任务,每3分钟执行一次脚本。如下: #!/bin/bash # 路由器IP(请替换为 ...

排版看不明白。

0

主题

2

回帖

0

牛值

江湖小虾

2025-11-25 09:47:51 显示全部楼层


#!/bin/bash

# 目标 IP 地址
TARGET_IP="192.168.10.1"  #这里替换成你要ping的IP地址(建议路由器IP),例如 "192.168.1.100"

# 日志文件路径(可选,用于记录执行情况)
LOG_FILE="/tmp/ping_shutdown.log"

# 记录时间
echo "$(date): 开始执行 Ping 检查任务,目标 IP: $TARGET_IP" >> "$LOG_FILE"

# 检查是否以 root 权限运行 (1Panel 的计划任务通常以 root 执行,但确认一下好)
if [[ $EUID -ne 0 ]]; then
   echo "$(date): 错误: 此脚本需要 root 权限才能执行关机操作。" >> "$LOG_FILE"
   exit 1
fi

# 执行 5 次 ping 测试,每次间隔 1 秒,等待 2 秒超时
FAIL_COUNT=0
for i in {1..5}; do
    if ping -c 1 -W 2 "$TARGET_IP" &> /dev/null; then
        echo "$(date): 第 $i 次 Ping 成功 - $TARGET_IP 可达" >> "$LOG_FILE"
        exit 0  # 一旦有一次成功,就退出脚本,不执行关机
    else
        echo "$(date): 第 $i 次 Ping 失败 - $TARGET_IP" >> "$LOG_FILE"
        FAIL_COUNT=$((FAIL_COUNT + 1))
    fi
    sleep 1  # 每次 ping 之间间隔 1 秒
done

# 检查 5 次是否全部失败
if [ "$FAIL_COUNT" -eq 5 ]; then
    echo "$(date): 警告: 5 次 Ping 尝试均失败! 系统将在一分钟后关闭..." >> "$LOG_FILE"
    # 广播关机消息(可选)
    wall "系统将于 1 分钟后关闭,原因: 无法连接到 IP $TARGET_IP。请保存您的工作。"
    # 发送关机命令(延迟 1 分钟,给用户留点时间)
    shutdown -h +1
else
    echo "$(date): Ping 检测完成: 并非全部失败,系统无需关闭。" >> "$LOG_FILE"
fi

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则