1. 当前位置: 网站首页 >  NAS >  打造N100飞牛NAS“真·不间断电源”:旧笔记本电池复活记,断电0秒切换、来电网络唤醒、还自带自动关机脚本

打造N100飞牛NAS“真·不间断电源”:旧笔记本电池复活记,断电0秒切换、来电网络唤醒、还自带自动关机脚本

一、写在前面

飞牛NAS(N100小主机+飞牛OS)功耗低、性能强,但支持usb协议的ups价格普遍偏高,nas的usb伴侣也要大几十(有ups的更不需要,直接就0成本就可以实现自动关机看第四步就可以了)。为了数据安全,于是我把抽屉里吃灰的笔记本电池拆开,花了不到几十元拼了一套“丐版UPS”,不仅能0秒切换,还能停电后自动安全关机,来电后主路由+NAS一键网络唤醒。

二、物料清单

废旧笔记本锂电池(6芯)

全自动12V电池管理板(带UPS模式)

12V升压稳压模块

N100小主机(已刷飞牛OS)

主路由爱快(也接UPS)

副路由(卧室中继)

DC5521公头/母头、导线

注:管理板型号关键词“12V UPS锂电池保护板 自动充放 不间断”,一定要买带“UPS模式”的,切换0秒不掉压。

三、原理速览

供电路径
市电→12V UPS板→稳压12V→N100NAS、主路由器、光猫
市电掉电后,UPS板0秒切到锂电池继续输出,稳压模块稳压12V给NAS、主路由器、光猫。

网络唤醒链路
光猫、主路由爱快也接在同一UPS下,断电后依旧在线。NAS关机后,随时可在爱快app中→“网络唤醒”一键开机。

自动关机触发
飞牛OS内置Crontab+Shell,每3秒ping副路由 IP:192.168.9.5(这是我的副路由器地址,后面代码中改成你们自己的地址)
连续10次不通即判定“市电已断+副路由已挂”,执行关机(时间和次数可以根据自己需要修改)。
副路由不接UPS,市电断后先于NAS掉电,天然形成“断电信号”。

四、飞牛OS自动关机脚本

用WinSCP登录NAS,新建/usr/ups_safe_shutdown.sh:

#!/bin/bash
# ============================================================================
# 网络失联自动关机守护脚本(固定路由器 IP 版)
# 必须以 root 身份运行
# 数巢笔记
# ============================================================================
# ---------- 1. 权限检查 ----------
if [[ $EUID -ne 0 ]]; then
    echo "错误:此脚本必须以 root 权限运行。" >&2
    exit 1
fi
# ---------- 2. 单例锁 ----------
LOCKFILE="/var/run/ups_safe_shutdown.pid"
exec 200>"$LOCKFILE"
if ! flock -n 200; then
    echo "脚本已在运行,退出。"
    exit 1
fi
echo $$ >&200
# ---------- 3. 基础配置 ----------
ROUTER_IP="192.168.9.5"      # 固定路由器地址(不变)
MAX_FAIL=10                  # 最大连续失败次数
CHECK_INT=3                  # 检测间隔(秒)
LOG_FILE="/usr/ups_safe_shutdown.log"
failure_count=0
# 日志函数
log() {
    echo "$(date '+%F %T') - $*" | tee -a "$LOG_FILE"
}
# ---------- 4. 主循环 ----------
while :; do
    if ping -c1 -W1 "$ROUTER_IP" >/dev/null 2>&1; then
        # 网络恢复
        if [[ $failure_count -ge $MAX_FAIL ]]; then
            # 之前已触发关机,现在取消
            shutdown -c 2>/dev/null && log "网络已恢复,取消关机计划"
        fi
        failure_count=0
    else
        # 网络失败
        ((failure_count++))
        log "Ping 失败次数: $failure_count/$MAX_FAIL"
        if [[ $failure_count -eq $MAX_FAIL ]]; then
            log "连续 $MAX_FAIL 次 ping 失败,系统将在 60 秒后关机!"
            shutdown -h +1 "系统因网络连接丢失触发自动关机"
        fi
    fi
    sleep "$CHECK_INT"
done

1.赋予执行权限:

chmod +x /usr/ups_safe_shutdown.sh

2.创建 systemd 服务单元:

sudo tee /etc/systemd/system/ups_safe_shutdown.service >/dev/null <<'EOF'
[Unit]
Description=Network Watchdog – auto-shutdown on lost router
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/ups_safe_shutdown.sh
Restart=always
RestartSec=10
KillMode=process
# 日志打到 journal,方便 systemctl status 查看
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF

3.启用并立即启动:

sudo systemctl daemon-reload
sudo systemctl enable --now ups_safe_shutdown.service

4.常用管理命令:

查看运行状态
sudo systemctl status ups_safe_shutdown.service
实时日志(journal)
sudo journalctl -u ups_safe_shutdown -f
手动重启
sudo systemctl restart ups_safe_shutdown
停止
sudo systemctl stop ups_safe_shutdown

五、验证步骤

拔掉市电,观察NAS面板灯依旧常亮,路由仍可ping通→UPS切换成功。

再拔掉副路由电源,等待一会,NAS自动关机→脚本生效。

重新上电,登录爱快app→“网络唤醒”→选中NAS,5秒后N100滴一声启动→唤醒成功。

六、排坑指南

是爱快路由器的一定不要开启劫持所有PING值。

七、结语

整套方案把废旧的笔记本电池利用了起来,不用花太多的钱去购买UPS,停电也不用担心硬盘损坏了。
祝各位玩的开心,数据永存!

展开全文


版权说明 手机扫码阅读
版权所有:《SHUNOT》 => 《打造N100飞牛NAS“真·不间断电源”:旧笔记本电池复活记,断电0秒切换、来电网络唤醒、还自带自动关机脚本
本文地址:https://www.shunot.com/nas/660.html
除非注明,文章均为 《SHUNOT》 原创,欢迎转载!转载请注明本文地址,谢谢。

发表评论

联系我们

在线咨询:点击这里给我发消息

微信号:master_135

工作日:9:00-23:00,节假日休息

扫码关注