打造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,停电也不用担心硬盘损坏了。
祝各位玩的开心,数据永存!


发表评论