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”选项编辑此文件。