Crontab - Планировщик задач в Linux

Crontab - планировщик задач Linux, позволяющий выполнять задачи (приложения или скрипты) в определенное время. Сервис/демон, ежеминутно обращается к своим настройкам и проверяет, не нужно запустить задачу.

Linux

 

Настройка Crontab

Для открытие на редактирование используется следующая команда

crontab -e

при первом запуске, нас попросят выбрать редактор по умолчанию

crontab изменить редактор по умолчанию

Переменные crontab

Планировщик позволяет использовать (изменять) переменные окружения, к примеру указание оболочки по умолчанию и путей поиска, позволит выполнять приложения без необходимости указывать полный путь до вызываемого приложения.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""

Формат задания в Crontab

Все задания в планировщике пишутся в определенном формате

# m h dom mon dow command

m - минуты (от 0 до 59)

h - часы (от 0 до 23)

dom - день месяца (1-31)

mon - месяц (1-12)

dow - день недели (от 0 до 6), 0 - это воскресенье, 1 - понедельник и т.д.

command - сама команда, которую нам необходимо будет выполнить.

  • В одной строчке должно располагаться только одно задание
  • Между параметрами возможно использовать как знак табуляции, так и обычный пробел
  • Если какой то параметр не задействован, то вместо него используется * (звездочка)
  • Если важен диапазон запуска, через какой промежуток времени повторять, то следует использовать m/period (где m - минуты, а period - через сколько минут повторять)
  • После задания обязателен переход на новую строку, которое сообщает Crontab что это конец задания
  • Возможно использовать перечисление (через запятую или тире) когда задача должна запуститься несколько раз

Примеры использования Crontab

Запуск команды в 00 минут и в 10 минут, каждого часа

0,10 * * * * ping localhost

Запуск задачи в 45 минуту каждого часа

45 * * * * ping localhost

Запуск команды каждую минуту, с понедельника по пятницу.

* * * * 1-5 ping localhost

Запуск команды каждую минуту

* * * * * ping locahost

Запуск команды каждые 5 минут

*/5 * * * * ping localhost

Запуск команды каждый день в 4 утра

0 4 * * * ping localhost

Запуск каждый день в 7 утра

0 7 * * * ping localhost

Запуск задачи каждые 30 минут

*/30 * * * * ping localhost

Запуск задачи каждый день в 23:50

50 23 * * * ping localhost

Запуск команды после перезагрузки

@reboot ping localhost

Добавить комментарий