crontab -e vs/etc/crontab中的cronjob条目.哪一个更好?

Ame*_*eyj 9 linux cron centos crontab scheduled-tasks

将crontab条目放在crontab -e(默认位置为:/ var/spool/cron/username)和/ etc/crontab中有什么区别?我的意思是crond守护进程基本上会执行两个cron作业.那么为什么有两种不同的方式来安排cronjob?哪一个优先于另一个?

Kei*_*son 16

不同之处在于crontab命令是系统为用户操作其crontabs提供的接口.该/etc/crontab文件是用于实现系统范围的crontab的特殊案例文件./var/spool/cron/crontabs/$USER(或者无论路径是什么)都是一个实现细节.

如果您可以使用该crontab命令安排作业,则应该这样做.

手动编辑/etc/crontab(a)的内容需要root访问权限,(b)更容易出错.你可以用这种方式弄乱你的系统.

如果要在您自己的用户帐户下运行作业,则无需使用root访问权限.

即使作业要运行root,使用该crontab命令可能仍然更有意义.(首先,它应检测文件中的语法错误.)

就个人而言,我不使用crontab -e.相反,我有一个crontab文件,我保存在源代码管理系统中,我使用crontab filename命令的形式来安装它.这样,如果我搞砸了,很容易恢复到早期版本.

  • @jessuppi 这当然很重要。`crontab filename` 将始终更新您的个人 crontab(即使您以 `root` 身份运行它),而不是 `/etc/crontab`。这两个 crontab 使用不同的语法。`/etc/crontab` 有一个额外的列,指定运行命令的用户。 (2认同)