cron
— это системный планировщик задач в Linux. Он позволяет запускать команды по расписанию, например: каждые 15 минут отправлять запрос на сайт или запускать скрипт.
В статье разберём два способа как правильно добавить новую строку в crontab, на примере периодического запуска cron в Drupal проекте.
Простой и очевидный способ: crontab -e
Это самый привычный способ для ручного редактирования расписания задач:
1 |
crontab -e |
После запуска команда откроет текущий крон-файл пользователя в редакторе (обычно nano
или vim
). В этом файле можно добавить строку, например:
1 |
*/15 * * * * /usr/bin/curl -s https://example.com/cron/your_key_here |
Что значит эта строка:
*/15
— каждые 15 минут* * *
— каждый час, день и месяц/usr/bin/curl
— путь к исполняемому файлу-s
— тихий режим (silent)- URL — вызываемый адрес cron-обработчика на сайте
После сохранения cron автоматически начнёт выполнять задание по расписанию.
Добавление строки через микроскрипт (без ручного редактирования)
Если вы хотите добавить задание в cron
программно, не открывая редактор, используйте следующий подход:
1 |
(crontab -l 2>/dev/null; echo "*/15 * * * * /usr/bin/curl -s https://example.com/cron/your_key_here") | crontab - |
Пояснение:
crontab -l
— выводит текущие задания cron2>/dev/null
— подавляет ошибку, если cron-файл пустecho "..."
— ваша новая строка- Вся конструкция в скобках
()
собирает старые + новые задания | crontab -
— передаёт объединённый список обратно в cron
Такой способ безопасен: он сохраняет все существующие задачи и просто добавляет новую.
Дополнение: с heredoc (если строка многострочная)
Можно также использовать heredoc-синтаксис:
1 2 3 4 5 |
(crontab -l 2>/dev/null; cat <<EOF # вызов Drupal cron каждые 15 минут */15 * * * * /usr/bin/curl -s https://example.com/cron/your_key_here EOF ) | crontab - |
Это полезно, если вы хотите добавить несколько строк за раз или добавить комментарий перед задачей.
Заключение
Добавление заданий в cron можно делать и вручную, и программно. Если вы работаете с автоматизацией (скрипты деплоя, установка CMS и т.п.), предпочтительнее второй способ.
Как последний штрих — не забывайте проверять:
1 |
crontab -l |
чтобы убедиться, что всё добавилось корректно.