不要使用 crontab -e
我不会将其crontab -e
作为根。对于其他管理员来说,这通常不太明显,并且随着时间的流逝可能会丢失。将它们放入/etc/crontab
您可以准确指定您希望它们运行的时间,也可以指定其他用户。
替代地点
如果您不希望以其他用户身份运行脚本,和/或只希望脚本每周,每天等运行,则可以通过多个发行版提供目录,可以在其中放置脚本,这些目录将在特定时间自动处理。
例如,在基于Redhat的发行版中:
$ ls -dl /etc/cron*
drwxr-xr-x. 2 root root 4096 Nov 29 11:06 /etc/cron.d
drwxr-xr-x. 2 root root 4096 Nov 29 11:06 /etc/cron.daily
-rw-------. 1 root root 0 Nov 23 07:42 /etc/cron.deny
drwxr-xr-x. 2 root root 4096 Nov 29 11:03 /etc/cron.hourly
drwxr-xr-x. 2 root root 4096 Nov 29 11:06 /etc/cron.monthly
-rw-r--r--. 1 root root 457 Sep 26 2011 /etc/crontab
drwxr-xr-x. 2 root root 4096 Sep 26 2011 /etc/cron.weekly
我经常会放一些我想在特定时间运行的系统级代码,/etc/cron.d
而不是/etc/crontab
,尤其是当它们是更复杂的脚本时。
我更喜欢使用下面的目录,/etc/cron*
因为它们是其他系统管理员更容易看到的位置,并且此处的文件可以通过软件包安装(例如rpm
和/或)进行管理apt
。
保护条目
我提到的任何目录都用于放置不会被程序包管理器破坏的脚本。如果您担心保护crontab条目,那么我绝对不会将其放在/etc/crontab
文件中,而是将其作为适当的脚本放在其中一个/etc/cron*
目录中。