Cron. Linux

Звёздочками обозначены конкретные блоки времени.

Для отображения содержимого crontab-файла текущего пользователя используйте команду:

$ crontab -l

Для редактирования заданий пользователя есть команда:

$ crontab -e

Чтобы изменить crontab-файл другого пользователя (например, ostechnix):

$ crontab -u ostechnix -e

Ниже приведены несколько примеров cron-заданий:

  1. Чтобы выполнять команду каждую минуту, задание должно быть такое:* * * * * <исполняемая-команда>
  2. Похожее задание, только команда будет вызываться каждые пять минут:*/5 * * * * <исполняемая-команда>
  3. Вызывать команду 4 раза в час (каждые 15 минут):*/15 * * * * <исполняемая-команда>
  4. Чтобы выполнить команду каждый час в 30 минут, пишем:30 * * * * <исполняемая-команда>Т. е. команда будет выполняться не каждые 30 минут, а тогда, когда значение минут будет равно 30 (например, 10:30, 11:30, 12:30 и т. д.).
  5. Значения времени можно комбинировать, перечислив их через запятую. Следующий код будет выполнять команду три раза в час: в 0, 5 и 10 минут.0,5,10 * * * * <исполняемая-команда>
  6. Выполнять команду каждый час будет следующее задание:0 * * * * <исполняемая-команда>
  7. Выполнение команды каждые два часа:0 */2 * * * <исполняемая-команда>
  8. Чтобы выполнять команду каждый день (в 00:00):0 0 * * * <исполняемая-команда>
  9. Выполнение команды каждый день в 03:00:0 3 * * * <исполняемая-команда>
  10. Выполнение команды каждое воскресенье (sunday):0 0 * * SUN <исполняемая-команда>
  11. Другой вариант задания, которое будет выполнять команду каждое воскресенье (естественно, тоже в 00:00):0 0 * * 0 <исполняемая-команда>
  12. Выполнение команды каждый день с понедельника по пятницу:0 0 * * 1-5 <исполняемая-команда>
  13. Следующее задание будет выполнять команду каждый месяц, 1-го числа в 00:00:0 0 1 * * <исполняемая-команда>
  14. Выполнять команду в 16:15 каждого первого числа месяца будет это задание:15 16 1 * * <исполняемая-команда>
  15. Выполнение команды каждые три месяца:0 0 1 */3 * <исполняемая-команда>
  16. Выполнение команды в строго определённое время и месяц:5 0 * 4 * <исполняемая-команда>
  17. Задание будет вызывать команду в начале каждого полугодия (в 00:00 1-го дня):0 0 1 */6 * <исполняемая-команда>
  18. Выполнение команды каждый год 1-го января в 00:00:0 0 1 1 * <исполняемая-команда>

Ещё существуют готовые задания:

  • @reboot — одиночное выполнение команды при загрузке;
  • @yearly — раз в год;
  • @annually — тоже раз в год;
  • @monthly — раз в месяц;
  • @weekly — один раз в неделю;
  • @daily —  раз в день;
  • @midnight — тоже раз в день;
  • @hourly — раз в час.

Чтобы выполнять команду каждый раз после перезапуска сервера, используйте это задание:

@reboot <исполняемая-команда>

Команда для очистки всех заданий текущего пользователя:

$ crontab -r

Чтобы узнать о подробностях, есть команда:

$ man crontab

Сайт для визуализированного создания cron
https://crontab.guru
https://crontab-generator.org/

Наверх