Как обновить крон без запуска текстового редактора
Все знают, что можно сделать так:
$ crontab -e
После выполнения команды запустится любимый nano/vi/mcedit, в котором можно отредактировать расписание, и после закрытия редактора файл расписания будет обновлен.
Но бывают ситуации, когда расписания нужно обновлять автоматически с помощью скриптов, например, в условиях continuous integration или проектов, в которых расписание задает пользователь.
Используем /etc/cron.d
Такие расписания можно раскладывать по файлам, для которых есть специальная папка:
$ ls /etc/cron.d php
В эту папку можно добавлять свои сценарии, разбивая их для удобства на файлы (файлов может быть много). Единственное, чем отличаются сценарии в файле это тем, что перед командой нужно указать пользователя, от имени которого эта команда будет выполнена, например:
*/10 * * * * www-data /var/www/task/flush_cache.sh
С помощью такого подхода расписание кронтаба можно хранить в коде проекта и при деплое обновлять кронтаб автоматически, запустив одну простую команду:
cat /var/www/my_project/conf/crontab > /etc/cron.d/my_project
Важно помнить
Не забывайте, что в конце каждого кронтаба должна быть пустая строка, иначе расписание не запустится.
Этот текст был написан несколько лет назад. С тех пор упомянутые здесь инструменты и софт могли получить обновления. Пожалуйста, проверяйте их актуальность.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: