Cron 忽略对 crontab 的更新

GJ.*_*GJ. 5 linux debian cron crontab

我在 debian 服务器上的 crontab 中注释掉了一行,我猜默认情况下它在那里但导致我每小时收到错误电子邮件:

# m h dom mon dow user  command
17 *   * * *   root    cd / && run-parts --report /etc/cron.hourly
Run Code Online (Sandbox Code Playgroud)

但是,错误电子邮件不断出现,就好像它没有被注释掉一样。错误邮件:

Subject: Cron <root@(none)> root    cd / && run-parts --report /etc/cron.hourly (failed)
/bin/sh: root: not found
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Den*_*son 5

当您说“crontab”时,您并没有具体说明。你应该说你指的是哪一个。但是,根据内容,它看起来像/etc/crontab. 由于该文件确实有一个用户字段,因此您收到该错误是没有意义的。我敢打赌,有一个用户 crontab 中包含该行。用户 crontab 不包含用户字段。

正确的做法是不要更改/etc/crontab. 它可能运行其他作业。

您可以/etc/cron.*使用任何编辑器编辑该文件和子目录中的文件。您可以crontab -e通过设置EDITOR环境变量来指定您在使用时要使用的编辑器。

您应该crontab -e用来编辑用户 crontabs(包括 root 的)。删除用户字段或删除用户crontab 中出现的该行(不是/etc/crontab)。用户 crontabs 没有用户字段,但系统 crontabs 有。

用户 crontab 位于/var/spool/cron/crontabs. 您可以sudo grep针对该行找出哪个文件有杂散线。同样,仅用于crontab -u username -e编辑用户的 crontab。