使用 cron 定义计划作业,“crontab -e”与“/etc/crontab”

使用 cron 定义计划作业,“crontab -e”与“/etc/crontab”

crontab -l和的输出crontab不同。

root@ce:~# crontab -l
0-59 * * * * curl http://ce.scu.ac.ir/courses/admin/cron.php?password=mypass
* * * * * ntpdate –s ir.pool.ntp.org
* * * * * php /var/www/html/shub/ow_cron/run.php
root@ce:~# cat /etc/crontab
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
*/01 * * * *    www-data    /var/www/html/shub/ow_cron/run.php
*/1 * * * *     www-data /usr/bin/php7.0 /var/www/html/courses/admin/cli/cron.php > /var/log/moodle/cron.log
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

我这么问是因为有些文档说用它crontab -e来定义 cron 作业。我应该使用crontab -e还是vim /etc/crontab

答案1

crontab -l显示正在运行的用户的crontab,即存储在 中的用户/var/spool/cron/crontabs。那里定义的任何内容都在该用户的用户 ID 下运行。这并不是特有的root,但root也可以有。

/etc/crontab,另一方面,包含全系统主 crontab (以及/etc/cron.d)。该文件中的条目有一个附加的用户名字段,其中定义的作业在该用户 ID 下运行。

您可以使用其中之一,也可以创建一个或多个文件来在/etc/cron.d.

答案2

/etc/crontab 是系统范围的 crontab 文件,只能用于此目的。您还需要超级用户权限才能编辑此文件。

此外,每个用户都有自己的“crontab”供个人使用,您可以按照您的描述通过“-e”选项编辑此文件。

相关内容