crontab -u 用户名 管理,文件无需用户名前缀/etc/cron.d/,每行必须以用户名开头
# 用户 crontab 示例(无需用户名)
0 7 * * * /tmp/weather.sh >> /tmp/logs/weather.log 2>&1
# 系统 cron.d 示例(必须加用户名)
appuser 0 7 * * * /tmp/weather.sh >> /tmp/logs/weather.log 2>&1
时间字段含义:
分钟 小时 日 月 星期0 2 * * * 表示每天凌晨 2 点执行
COPY crontab.appuser /tmp/crontab.appuser
RUN crontab -u appuser /tmp/crontab.appuser
COPY crontab.root /etc/cron.d/root-cron
RUN chmod 0644 /etc/cron.d/root-cron
注意:cron.d 文件每行必须以用户名开头,否则会出现 bad username 错误。
建议所有定时任务都添加日志输出:
/tmp/script.sh >> /tmp/logs/script.log 2>&1
这样可以在 /tmp/logs 中查看每个任务的执行结果。