将crontab条目放在crontab -e(默认位置为:/ var / spool / cron / username)和/ etc / crontab中有什么区别?我的意思是crond守护进程基本上会执行两个cron作业。那么为什么有两种不同的方式来安排cronjob?哪一个优先于另一个?
答案 0 :(得分:12)
不同之处在于crontab
命令是系统为用户操作其crontabs提供的接口。 /etc/crontab
文件是用于实现系统范围的crontab的特殊案例文件。 /var/spool/cron/crontabs/$USER
(或者无论路径是什么)都是一个实现细节。
如果您可以使用crontab
命令安排作业,则应该这样做。
手动编辑/etc/crontab
(a)的内容需要root访问权限,(b)更容易出错。你可以用这种方式弄乱你的系统。
如果要在您自己的用户帐户下运行作业,则无需使用root访问权限。
即使作业以root
运行,使用crontab
命令仍然更有意义。 (首先,它应该检测文件中的语法错误。)
就个人而言,我不使用crontab -e
。相反,我有一个crontab文件,我保存在源代码管理系统中,我使用命令的crontab filename
形式来安装它。这样,如果我搞砸了,很容易恢复到早期版本。