Было много хороших ответов относительно использования crontab, но нет упоминаний о более простом методе, таком как cron
.
Использование cron
позволит использовать системные файлы и каталоги, расположенные в /etc/crontab
, /etc/cron.daily,weekly,hourly
или /etc/cron.d/
:
cat > /etc/cron.d/<job> << EOF
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root HOME=/
01 * * * * <user> <command>
EOF
В этом примере выше мы создали файл в /etc/cron.d/
, предоставили переменные среды для успешного выполнения команды и предоставили user
для команды и сам command
. Этот файл не должен быть исполняемым, а имя должно содержать только буквенно-цифровые и дефисы (подробнее см. Ниже).
Чтобы дать подробный ответ, давайте посмотрим на различия между crontab
против cron/crond
:
crontab -- maintain tables for driving cron for individual users
Для тех, кто хочет запустить задание в контексте своего пользователя в системе, использование crontab
может иметь смысл.
cron -- daemon to execute scheduled commands
Для тех, кто использует управление конфигурацией или хочет управлять заданиями для других пользователей, в этом случае мы должны использовать cron
.
Краткий отрывок из справочных страниц дает вам несколько примеров того, что нужно делать, а чего нет:
/ etc / crontab и файлы в /etc/cron.d должны принадлежать пользователю root и не должны быть доступны для записи в группе или другой записи. В отличие от области спула, файлы в /etc/cron.d или файлы в /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly и /etc/cron.monthly также могут быть символические ссылки, при условии, что как символическая ссылка, так и файл, на который она указывает, принадлежат пользователю root. Файлы в /etc/cron.d не должны быть исполняемыми, тогда как файлы в /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly и /etc/cron.monthly делают это, как они запускаются частями выполнения (для получения дополнительной информации см. части выполнения (8)).
Источник: http://manpages.ubuntu.com/manpages/trusty/man8/cron.8.html
Такое управление кронами проще и более масштабируемо с точки зрения системы, но не всегда будет лучшим решением.