Не использовать crontab -e
Я бы не поставил это crontab -e
как root. Это, как правило, менее очевидно для других администраторов и может потеряться со временем. Помещая их, /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
Я часто раз поставил crons на уровне системы , что я хочу работать в то время , определенной в /etc/cron.d
вместо /etc/crontab
, особенно , если они более сложные сценарии.
Я предпочитаю использовать каталоги, /etc/cron*
потому что они гораздо более очевидные места, которые другие системные администраторы будут знать, и файлами здесь можно управлять с помощью установок пакетов, таких как rpm
и / или apt
.
Защита записей
Любые из упомянутых мной каталогов предназначены для размещения сценариев, которые не будут уничтожены менеджером пакетов. Если вы беспокоитесь о защите записи в crontab, то я бы определенно не поместил ее в /etc/crontab
файл, а вместо этого поместил бы ее как правильный скрипт в один из /etc/cron*
каталогов.