直接将计划任务添加到 /etc/crontab 而不是使用 crontab 命令是否有缺点/后果?

直接将计划任务添加到 /etc/crontab 而不是使用 crontab 命令是否有缺点/后果?

CentOS 5.x

我注意到有人(大概是另一个管理员)直接在底部添加了一个条目,/etc/crontab因此内容如下:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
00 3 * * 0 root foocommand

假设我确实希望该命令以 root 身份运行,那么以这种方式添加计划任务会产生后果吗?我更习惯使用crontab -e添加/编辑计划任务。

答案1

与运行 crontab 文件中的命令没有区别。至少 Vixie cron(如在 CentOS 上)每分钟检查一次 spool 目录的修改时间或 的修改时间是否/etc/crontab已更改。

但是,如果您通过 编辑crontab -e,并写入 crontab,将检查是否存在明显的错误。例如,如果 crontab 的最后一行是,* * * *您将收到消息:

crontab: installing new crontab
"/tmp/crontab.HbT2Sa/crontab":27: bad day-of-week
errors in crontab file, can't install
Do you want to retry the same edit? (y/n) 

(至少如果最后一行是第 27 行)。

crontab如果您只是向文件添加行(/etc/crontab或者 中的行/var/spool/cron/),那么这样的检查机制当然不会到位。

相关内容