定时任务——让脚本在后台自动执行
入口
ZT 功能 → 定时任务
定时任务文件
ZeroTermux 的定时任务相关路径:
| 路径 | 说明 |
|---|---|
~/.timerdir/termux_timer.sh | Termux 定时任务脚本 |
~/.timerdir/shell_timer.sh | Shell 定时任务脚本 |
~/.timerdir/log/ | 定时任务日志目录 |
/data/data/com.termux/files/execTermuxEnv.sh | 执行 Termux 环境的辅助脚本 |
典型场景
- 定时备份容器(每天凌晨 3 点)
- 定时同步云盘文件
- 定时拉取更新
- 定时清理缓存
使用建议
先手动跑通
不要直接把没跑过的脚本塞进定时任务。先手动在终端里执行一次,确认命令本身没问题、路径正确、权限足够。定时任务里脚本运行环境和终端不完全一致(没有交互式 shell、环境变量可能不同),先手动跑能帮你排除最基本的错误。
用绝对路径
定时任务里的命令尽量用完整路径:
# 推荐(定时任务环境没有 $PATH 或 PATH 不完整)
/data/data/com.termux/files/usr/bin/python /data/data/com.termux/files/home/task.py
# 不推荐(依赖 PATH)
python task.py
写文件也用绝对路径
脚本里写文件时用完整路径:
# 推荐
echo "done" >> /data/data/com.termux/files/home/logs/task.log
# 不推荐
echo "done" >> logs/task.log
日志目录看结果
任务跑没跑、跑成功没,定时任务菜单里一般有日志查看入口,也可以手动:
ls ~/.timerdir/log/
后台不执行怎么办
Android 对后台进程限制很严(Doze 模式),如果定时任务到了点没执行:
- 关闭电池优化:系统设置 → 电池 → ZeroTermux → 无限制
- 允许后台运行:系统设置 → 应用 → ZeroTermux → 允许后台活动
- 锁定后台:把 ZeroTermux 拉到后台后在最近任务列表里点锁定图标
- 部分厂商 ROM 额外要求:MIUI / EMUI / ColorOS 各自有自启动管理,把 ZeroTermux 加到允许列表
常见问题
| 现象 | 原因 | 处理 |
|---|---|---|
| 终端能跑、定时任务不能 | PATH 或工作目录不同 | 全部用绝对路径 |
| 偶尔执行偶尔不执行 | 系统 Doze 模式 | 关闭电池优化 |
| 任务执行了但输出不对 | 脚本环境变量缺失 | 在脚本开头补 export PATH |
| 定时任务不执行 | ZeroTermux 进程被杀 | 锁定后台 + 无限制 |