在 NAS 上跑定时任务:从手动签到到全自动
为什么要在 NAS 上跑
家里那台小主机装了 fnOS 之后,最爽的不是存电影,而是它可以 7×24 小时替我干活。
以前每天醒来第一件事是挨个 App 点签到,现在全部交给定时任务。
一个最小的定时任务
用 Docker 起一个 Python 容器,把脚本挂进去:
docker run -d --name jobs \
-v /opt/jobs:/app \
-e TZ=Asia/Shanghai \
--restart always \
python:3.11-slim \
python /app/run.py
脚本里用 schedule 库排期,比 crontab 好调试:
import schedule, time
def task():
print("do something")
schedule.every().day.at("08:00").do(task)
while True:
schedule.run_pending()
time.sleep(30)
踩过的坑
- 时区:容器默认 UTC,
-e TZ=Asia/Shanghai别忘了 - 重启策略:一定要
--restart always,断电后自动拉起 - 日志:挂载出来,不然容器一删日志全没
- 失败告警:脚本出错要主动推送,否则你永远不知道它挂了
小结
定时任务的价值在于把你从重复劳动里解放出来,但前提是它得稳定。先跑通,再加告警,最后才谈优化。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果