使用 crontab -e 和 /etc/crontab 有什么区别

使用 crontab -e 和 /etc/crontab 有什么区别

我希望从启动时运行一些东西,并使用 cron 触发重新启动。

我在那里使用sudo crontab -e和添加命令。这些命令与重新启动无关。重新启动并不总是发生。我希望每天早上 4 点重新启动。我添加的行是:

00 4 * * * root /sbin/shutdown -r now >> /var/log/daily-backup.log 2>&1

我现在改为修改/etc/crontab以重新启动,并且它似乎有效。为什么是这样?因为命令以 root 身份运行,所以 crontab -e 不应该工作吗?

答案1

如果您这样做crontab -e,那么您正在修改每个用户cron 条目,通常位于/var/spool/cron/crontabs/$USERNAME.

由于这些是针对每个用户的,因此不需要用户名。

所以该条目看起来像

00 4 * * * /sbin/shutdown -r now >> /var/log/daily-backup.log 2>&1

相反,/etc/crontab(以及 中的文件/etc/cron.d/)是系统 crontab 条目,因此需要用户名。

您可以cron通过查看/var/log/syslog(在 Debian 上;/var/log/cron在 RedHat 上)来了解正在执行的操作。如果您的作业被调用,那么您的...中应该有一行,daily-backup.log可能表示它找不到“root”命令。

相关内容