Linux 添加定时任务
在 Linux 中,您可以通过 crontab 创建定时任务,实现每天 00:00:00 自动执行 Python 脚本。以下是详细步骤:
步骤 1:确认 Python 脚本路径及权限
- 确保脚本有可执行权限:
chmod +x /path/to/your_script.py
- 在脚本首行添加解释器声明(可选但推荐):
#!/usr/bin/env python3
步骤 2:编辑 crontab 定时任务
-
打开当前用户的定时任务配置文件:
crontab -e
-
在文件末尾添加一行(按
i
进入编辑模式):0 0 * * * /usr/bin/python3 /path/to/your_script.py >> /path/to/log.log 2>&1
• 时间格式:
0 0 * * *
表示每天 00:00 执行。
• 日志记录:>> /path/to/log.log 2>&1
将脚本输出和错误写入日志文件(可选)。 -
保存并退出:
• 按Esc
→ 输入:wq
→ 按回车。
命令参数说明
参数 | 说明 |
---|---|
0 0 * * * | 每天 00:00 执行(格式:分 时 日 月 周 ) |
/usr/bin/python3 | Python 解释器的绝对路径(通过 which python3 查询) |
/path/to/your_script.py | Python 脚本的绝对路径 |
>> /path/to/log.log | 追加标准输出到日志文件 |
2>&1 | 将标准错误重定向到标准输出(一同记录日志) |
步骤 3:验证定时任务
- 查看已添加的任务:
crontab -l
- 检查 cron 日志(需系统支持):
tail -f /var/log/syslog | grep cron
常见问题排查
-
脚本权限不足:
• 确保脚本和日志文件路径有读写权限:chmod 755 /path/to/your_script.py chmod 644 /path/to/log.log
-
环境变量缺失:
• 在 cron 任务中声明环境变量(如PYTHONPATH
):0 0 * * * export PYTHONPATH=/your/path && /usr/bin/python3 /path/to/script.py
-
时间误差:
• 系统时区需与目标时区一致,检查并同步时区:timedatectl set-timezone Asia/Shanghai # 设置为上海时区
扩展:精确到秒级执行
如果需严格在 00:00:00
执行(默认 cron 仅支持分钟级),可通过以下方法实现:
0 0 * * * sleep 0 && /usr/bin/python3 /path/to/script.py
通过上述步骤,您的 Python 脚本将在每天凌晨自动执行。建议首次测试时设置未来 2 分钟的任务(如 */2 * * * *
),确认无误后再调整为长期任务。