让 cron 任务每小时运行
crontab 中“每小时”的表达式是 0 * * * *。下面是可直接粘贴的配置、接下来的运行时间和需要注意的地方。 crontab 是经典的 Unix 调度器:五个时间字段加一条命令,按服务器时区运行。
0 * * * *在工具中打开“每小时”
crontab 行
crontab -e
# m h dom mon dow command
CRON_TZ=UTC
0 * * * * /path/to/job.shcrontab 的坑
% 会被当成换行crontab 行里未转义的 % 会结束命令,后面的内容被送到标准输入。日期格式里要写 \%。
日和星期是“或”两个日期字段都写了值时,任一匹配就运行,除非其中一个以 * 开头。0 0 1 * 1 会在每月 1 号和每个周一运行。
环境变量很少任务以很短的 PATH、非登录 shell 运行。用绝对路径,并在 crontab 顶部设置变量。
错过的不会补跑到点时机器关着,这次就跳过了。需要补跑请用 anacron 或设置了 Persistent=true 的 systemd timer。
常见问题
crontab 中“每小时”的 cron 表达式是什么?
0 * * * *。含义:每小时
crontab 的定时任务按哪个时区运行?
按服务器本地时区。cronie 会对其后的条目应用 CRON_TZ= 行;依赖它之前请确认系统用的是哪种 cron。
怎么编辑 crontab?
crontab -e 编辑,crontab -l 查看。每行是五个时间字段加命令。
crontab 里周日是 0 还是 7?
都可以。crontab 的 0 和 7 都表示周日,也可以写 SUN。