Использование и настройка CRON

Cron — планировщик задач в UNIX-подобных операционных системах, использующийся для периодического выполнения заданий в определённое время.

Файл находится по адресу /etc/crontab, именно в него и добавляются строки с командами которые необходимо автоматически выполнять, а также команды можно поместить отдельным файлом в директории /etc/cron.d/, /etc/cron.daily/, /etc/cron.hourly/, /etc/cron.monthly/, /etc/cron.weekly/.

Приведу пример добавляемой строки в cron:

* * * * * команда

Таблица времени запуска:
— — — — —
| | | | |
| | | | —— День недели (0 — 7) (Воскресенье =0 или =7)
| | | ——- Месяц (1 — 12)
| | ——— День (1 — 31)
| ———— Час (0 — 23)
————- Минута (0 — 59)

Приведу несколько примеров времени выполнения команд:

* * * * * 
Каждую минуту

*/5 * * * * 
Каждые 5 минут

*/30 * * * * 
Каждые 30 минут

0 * * * *
Каждый час

30 * * * *
Каждый час в 30 минут

0 */2 * * *
Каждые 2 часа

30 */2 * * *
Каждые 2 часа в 30 минут

59 23 31 12 5
За минуту до конца года, если последний день года — пятница

59 23 31 Dec Fri
За минуту до конца года, если последний день года — пятница (еще один вариант записи)

45 17 7 6 *
Каждый год 7-го июня в 17:45

0,15,30,45 0,6,12,18 1,15,31 * 1-5
В 00:00, 00:15, 00:30, 00:45, 06:00, 06:15, 06:30, 06:45, 12:00, 12:15, 12:30, 12:45, 18:00, 18:15, 18:30, 18:45, если сейчас 1-е, 15-е или 31-е число любого месяца и только по рабочим дням недели

*/15 */6 1,15,31 * 1-5
В 00:00, 00:15, 00:30, 00:45, 06:00, 06:15, 06:30, 06:45, 12:00, 12:15, 12:30, 12:45, 18:00, 18:15, 18:30, 18:45, если сейчас 1-е, 15-е или 31-е число любого месяца и только по рабочим дням недели (еще один вариант записи)

0 12 * * 1-5 (0 12 * * Mon-Fri)
В полдень по рабочим дням

* * * 1,3,5,7,9,11 *
Каждую минуту в январе, марте, мае, июле, сентябре и ноябре

1,2,3,5,20-25,30-35,59 23 31 12 *
В последний день года в 23:01, 23:02, 23:03, 23:05, 23:20, 23:21, 23:22, 23:23, 23:24, 23:25, 23:30, 23:31, 23:32, 23:33, 23:34, 23:35, 23:59

0 9 1-7 * 1 
Первый понедельник каждого месяца, в 9 утра

0 9 * * 1 
Каждый понедельник в 9 утра

0 0 1 * * 
В полночь, первого числа, каждый месяц

* 0-11 * *  
Каждую минуту до полудня

30 9 1 * *
1-го числа каждого месяца в 9:30

* * * 1,2,3 *
Каждую минуту в январе, феврале и марте

* * * Jan,Feb,Mar *
Каждую минуту в январе, феврале и марте

0 0 * * * 
Каждый день в полночь

0 0 * * 3 
Каждую среду в полночь

Чтобы результат выполнения команды не приходил на электронную почту в конце команды можно добавить:
>/dev/null 2>&1

Вот пример строки добавления скрипта /home/user/scrips.sh в Cron для автозапуска каждый день в полночь (файл должен быть с правами на выполнение):
0 0 * * * /home/user/script.sh >/dev/null 2>&1

Чтобы в случае ошибок получать уведомления на email, укажем (по умолчанию сообщения отправляются пользователю root):

MAILTO=example@ixnfo.com

Также можно выполнять скрипт или команду только при запуске системы указав @reboot в начале строки, но в некоторых Linux это может не работать, по этому рекомендую использовать rc.local, init.d и т.д., либо проверить работает ли @reboot:

crontab -l
@reboot echo "test" > /home/ixnfo.com/test.txt 2>&1
sudo reboot
cat /home/ixnfo.com/test.txt

Смотрите также мои статьи:
Перенаправление почты пользователя root
Как писать CRON логи в отдельный файл
Настройка Cron заданий в cPanel и WHM

Оставьте комментарий

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