AutoPower 图标 AutoPower 自动开关机

飞牛 fnOS 应用 · MIT 开源

让 NAS 跟着
昼夜作息

为 NAS 设置定时开机、定时关机和定时重启:工作日早上自动开机、深夜自动关机,周末按另一套时间执行。定时开机通过主板 RTC 唤醒实现,关机和重启由系统定时任务执行。

v1.4.2 · 不确定架构时 SSH 执行 uname -m · SHA256 校验文件

  • 纯 Python + Bash
  • x86 · ARM
  • 不访问外网
00:00

  • 开机
  • 关机
  • 重启
  • 拖动指针预览示例计划

一张计划表,管好开机、关机与重启

三种操作

新增、编辑、删除、启用、停用开机、关机或重启计划,每条计划可添加备注。

灵活的日期

每天、平日(周一至周五)、假日(周六、周日)或指定星期。

未来 7 天预览

首页显示下一次执行时间,以及未来 7 天的执行预览。

冲突提示

同一时间既开机又关机、既关机又重启,或计划重复时给出提示。

RTC 唤醒

关机(包括手动关机)前自动把下一次开机时间写入主板 RTC。

时钟偏差自动补偿

主板时钟走 UTC 或本地时间都能正确唤醒:执行器测量 RTC 与系统时间的偏差并自动补偿。

状态一目了然

界面显示执行器运行状态、RTC 闹钟时间和最近的关机、重启记录。

界面

AutoPower 主界面:计划列表与未来 7 天预览
主界面:计划列表、下次执行时间与未来 7 天预览
编辑计划弹窗
编辑计划
执行器部署弹窗:运行状态、RTC 闹钟与部署命令
执行器部署:状态、RTC 闹钟与最近执行记录

应用负责计划,执行器负责动手

应用以普通权限运行,只编辑计划。关机、重启和写主板 RTC 闹钟需要 root,由管理员部署一次的独立执行器完成。

AutoPower 应用包用户运行,只监听 127.0.0.1:3868,经飞牛登录鉴权访问
计划文件执行器按白名单逐条校验,拒绝符号链接并限制大小
root 执行器cron 每分钟运行一次:命中计划时调用 /sbin/poweroff 或 /sbin/reboot,并同步 RTC 唤醒闹钟
  • 执行器只做关机、重启和写 RTC 三件事,不执行任何来自配置的命令
  • 写接口只接受 application/json,阻止跨站表单提交;请求体限制 64KB
  • 内网和公网访问都无需额外端口或反代
  • 不访问外网,不收集任何数据

四步装好

  1. 下载安装包

    Intel / AMD 处理器选 x86 版,ARM 处理器选 ARM 版。SSH 执行 uname -m:输出 x86_64 选 x86,输出 aarch64 选 ARM。x86 已实机验证,ARM 尚未实机验证。

  2. 手动安装

    在飞牛「应用中心 → 手动安装」上传安装包。

  3. 部署执行器

    打开应用,点「执行器部署」,复制部署命令,用管理员账号 SSH 登录 NAS 执行一次。实际命令以应用内显示的为准(数据目录因安装卷而异)。

    sudo python3 -I /var/apps/autopower/target/AutoPower/src/autopower_executor.py --install <数据目录>
  4. 开启 RTC 唤醒

    在 BIOS/UEFI 中开启 RTC 唤醒(不同主板叫 Resume by RTC Alarm、Wake on RTC 等)。定时关机和重启不依赖这一步。

应用升级后界面提示“执行器版本过旧”时,重新执行一次部署命令即可。卸载应用前先在「执行器部署」中复制卸载命令执行。

最近更新

1.4.2

重绘应用图标:电源符号居中,64 像素图标按像素网格绘制,外形与飞牛系统图标一致。执行器无变化。

1.4.1

修复弹窗在窗口高度不够时底部被遮挡、手机上弹窗打开时带动列表滚动、星期下拉层盖住「重启」选项。

1.4.0

新增定时重启;同一时间存在不同操作时给出冲突提示;修复全新安装失败(错误码 10237)。执行器升级到 1.2.0,需要重新部署。

1.3.0

分 x86 与 ARM 两个安装包并附 SHA-256 校验;新增计划备注、未来 7 天预览和冲突提示;时间统一按 NAS 系统时区显示,跨夏令时也正确。

完整更新日志 →