crontab

 

2022-05-18

crontab 只能精确到分钟

  • 日志: ==/var/log/cron.log==
  • 命令: /etc/init.d/cron
    • status
    • stop
    • start

参数

  • -e : 编辑
  • -l : 查看
  • -r : 删除
  • -u : 查看指定用户

配置

  • 1 2 3 4 5 command
    • 1 分,0-59
    • 2 时,0-23
    • 3 日,1-31
    • 4 月,1-12
    • 5 周,0-6,0 表示周日

除了数字之外,可用 ==*== 表示任意时间,另外还有三个符号:

  • ==/==: 表示间隔,比如 */3 每隔三分钟
  • ==,==: 表示 A 和 B,比如 1, 3, 4 每周一周三和周四
  • ==-==: 表示 A 到 B,比如 1-4,每周一到周四

日志

Ubuntu 默认未开启 cron 日志

Terminal window
1
vim /etc/rsyslog.d/50-default.conf
2
# 取消 #cron.* 行注释,然后重启 rsyslog 服务
3
systemctl restart rsyslog

示例

每隔五分钟执行

Terminal window
1
*/5 * * * * /usr/bin/python <path>/<file.py>

问题

执行 Python 文件时,即使已经使用完整路径形式,如果仍然无法执行,可尝试先 cd 到对应 Python 文件目录下再执行。

如果代码中有使用 selenium,通过 crontab 执行命令时,需要添加 code/path 变量:

Terminal window
1
echo $PATH
2
# 然后把内容拷贝到 crontab -e 中

参考