Cron 忽略 crontab 的更新

Cron 忽略 crontab 的更新

我在 Debian 服务器上的 crontab 中注释掉了一行,我猜这是默认存在的,但却导致我每小时收到一次错误电子邮件:

# m h dom mon dow user  command
17 *   * * *   root    cd / && run-parts --report /etc/cron.hourly

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

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

有任何想法吗?

答案1

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

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

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

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

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

答案2

检查系统手册页中的 crontab(5) ( man 5 crontab),尤其是“示例系统 CRON 文件”部分。只有 /etc/crontab 文件包含用户名字段。非系统用户 crontab 不包含此字段。如果要编辑 /etc/crontab,请使用文本编辑器,而不是 crontab(1) 命令。

相关内容