Премиальное программное обеспечение и практические уроки
CronJob — это LinuxПланирование миссииПрограмма, которая планирует выполнение задачи в определённое время или планирует повтор задачи через определённое время. Вот как это настроить в CentOS 8.Крон Работа.
Cron — это система управления задачами с временным управлением для Unix-подобных операционных систем. Она позволяет пользователям запускать запланированные задачи (команды и скрипты) в фиксированное время, дату и интервал. Cron обычно используется для управления операциями, но может использоваться и для других целей, например, для регулярной загрузки файлов и электронных писем. Слово cron происходит от греческого слова chronos, что означает время.
Обычно инструкции, хранящиеся в файле расписания задач (crontab), активируются демоном crond, который работает в фоновом режиме и каждую минуту проверяет наличие регулярных заданий, требующих выполнения. Такие задания обычно называются заданиями cron.
Прежде чем приступить к настройке заданий Cron на CentOS 8, вам необходимо иметь учетную запись пользователя без полномочий root с привилегиями sudo на вашем сервере.
Чтобы открыть crontab с помощью текстового редактора, введите следующую команду:
кронтаб -е
После ввода вышеуказанной команды вам будет предложено выбрать текстовый редактор.
В crontab заголовок пользователя mh dom mon dow имеет следующее значение:
* m = Минута запуска задания cron. (от 0 до 59) * h = Целое число, определяющее час запуска задания. (от 0 до 23) * dom = День месяца, в который будет запущено задание cron. (от 1 до 31) * mon = День месяца, в который будет запущено задание cron. (от 1 до 12) * dow = День недели от 0 до 6, где воскресенье — 0. (от 0 до 6) * user = Пользователь, под которым будет запущено задание cron. * command = Команда Linux, которую вы хотите выполнить.
Звездочка на таймингах кронтаба ()
При настройке cronjob asterisk (), он широко используется. Это означает, что еслиЕсли указать значение m (минуты), команда будет выполняться каждую минуту.
Простой пример заданий Cron
Cron, который запускается каждую минуту
* * * * * (пользователь) (команда)
Запускать Cron каждые 10 минут
10 * * * * (пользователь) (команда)
Запускать Cron каждые 30 минут
30 * * * * (пользователь) (команда)
Cron, который запускается каждый час (когда минута достигает нуля)
0 * * * * (пользователь) (команда)
Cron, который запускается в полночь
0 0 * * * (пользователь) (команда)
Cron, который запускается в 8 утра
0 8 * * * (пользователь) (команда)
Cron для запуска PHP-скриптов
* * * * * корень /usr/bin/php /var/www/html/project/test.php
Расширенные примеры crontab
Используйте запятые в crontab: Следующая команда будет выполнена в 8:45 утра 15 января, марта, июля и декабря.
45 8 15 Янв,Мар,Июль,Дек * (пользователь) (команда)
Используйте оператор деления в crontab: разделите минуту на 10. Следующая команда будет выполнена на 0-й, 10-й, 20-й, 30-й, 40-й и 50-й минутах каждого часа (каждая минута делится на 10).
*/10 * * * * (пользователь) (команда)
Тире в кронтабе: следующий кронтаб будет выполняться с 15-го по 20-е число каждого месяца. Тире обозначает диапазон.
0 0 15-20 * *(пользователь) (команда)
Подробное объяснение выражения cron:
Выражение Cron представляет собой строку, разделённую 5 или 6 пробелами и разделённую на 6 или 7 полей. Каждое поле представляет собой значение. Cron имеет два следующих формата синтаксиса:
Секунды Минуты Часы ДеньМесяца Месяц ДеньНедели Год или
Секунды Минуты Часы ДеньМесяца Месяц ДеньНедели
В каждом поле могут использоваться следующие символы:
Секунды: могут содержать четыре символа «, - * /», допустимый диапазон — целое число от 0 до 59.
Минуты: «, - * /» может содержать четыре символа, допустимый диапазон — целое число от 0 до 59.
Часы: могут содержать символы «, - * /», допустимый диапазон — целое число от 0 до 23.
DayofMonth: может содержать восемь символов, «, - * / ? LWC», и представляет собой целое число в допустимом диапазоне 0-31.
Месяц: может содержать четыре символа «, - * /», допустимый диапазон — целое число от 1 до 12 или JAN-DEc
DayofWeek: может отображаться ", - * / ? LC #". Допустимый диапазон — целое число от 1 до 7 или два диапазона от ВС до СБ. 1 означает воскресенье, 2 — понедельник и т. д.
Год: может содержать четыре символа «, - * /», допустимый диапазон — 1970–2099.
В каждом поле используются цифры, но также могут присутствовать следующие специальные символы, значения которых приведены ниже:
*: означает, что любое значение в поле совпадает. Если используется в поле «Минуты», событие будет срабатывать каждую минуту.
?: можно использовать только в полях DayofMonth и DayofWeek. Он также может соответствовать любому значению в поле, но фактически не соответствует. Это связано с тем, что DayofMonth и DayofWeek влияют друг на друга. Например, если вы хотите, чтобы расписание запускалось 20-го числа каждого месяца, независимо от того, на какой день недели приходится это 20-е число, можно использовать только следующий синтаксис: 13 13 15 20 * ?, где последняя цифра может быть только ?, а неЕсли вы используетеЭто значит, что он сработает независимо от дня недели, но это не так.
-: Указывает диапазон. Например, если в поле «Минуты» указано значение 5–20, триггер будет срабатывать каждую минуту в интервале от 5 до 20 минут.
/: Указывает, что триггер запускается в заданное время и затем срабатывает через фиксированное время. Например, если в поле «Минуты» указано 5/20, это означает, что триггер срабатывает каждые 5 минут, а также каждые 25 минут, 45 минут и т. д.
,: обозначает список значений перечисления. Например, использование значения 5,20 в поле «Минуты» означает срабатывание каждую минуту в 5 и 20 минут соответственно.
L: означает «последний» и может использоваться только в полях «День недели» и «День месяца». Если в поле «День недели» указано 5L, это означает, что событие сработает в последний четверг.
W: представляет собой допустимый день недели (с понедельника по пятницу). Он может присутствовать только в поле «ДеньМесяца». Система запустит событие в ближайший допустимый день недели к указанной дате. Например, если в поле «ДеньМесяца» используется значение 5W, то если 5-е число приходится на субботу, система запустит событие в ближайший день недели: пятницу, то есть 4-е число. Если 5-е число приходится на воскресенье, система запустит событие 6-го числа (понедельник). Если 5-е число приходится на день между понедельником и пятницей, система запустит событие 5-го числа. Кроме того, ближайший поиск по значению W не будет пересекать месяц.
LW: Эти два символа могут использоваться вместе для обозначения последнего рабочего дня месяца, то есть последней пятницы.
#: используется для определения дня недели каждого месяца. Это поле может присутствовать только в поле «ДеньМесяца». Например, 4#2 обозначает вторую среду месяца.
пример:
0 0 2 1 * ? * означает, что задачу нужно запланировать на 2:00 утра 1-го числа каждого месяца.
0 15 10 ? * ПН-ПТ означает, что задание будет выполняться в 10:15 каждый день с понедельника по пятницу.
0 15 10 ? 6L 2002-2006 означает, что действие будет выполнено в 10:15 утра в последнюю пятницу каждого месяца с 2002 по 2006 год.
Выражение cron содержит не менее 6 (возможно, и 7) элементов времени, разделенных пробелами.
Чтобы:
Секунды (0-59)
Минуты (0~59)
Часы (0~23)
День (месяц) (0~31, но необходимо учитывать количество дней в месяце)
Месяц (0-11)
День недели (1~7 1=ВС или ВС, ПН, ВТ, СР, ЧТ, ПТ, СБ)
Год (1970-2099)
Каждый элемент может быть значением (например, 6), непрерывным интервалом (9–12), интервалом (8–18/4) (/ означает каждые 4 часа), списком (1, 3, 5) или подстановочным знаком. Поскольку элементы «день месяца» и «день недели» являются взаимоисключающими, какой из них должен быть задан?
0 0 10,14,16 * * ? Каждый день в 10:00, 14:00 и 16:00.
0 0/30 9-17 * * ? Каждые полчаса в течение рабочего дня с 9 до 5
0 0 12 ? * СР означает каждую среду в 12:00.
"0 0 12 * * ?" Срабатывает каждый день в 12 часов дня.
"0 15 10 ? * "Срабатывает каждый день в 10:15 утра.
«0 15 10 * * ?» срабатывает в 10:15 каждый день.
«0 15 10 * * ? *» срабатывает в 10:15 утра каждый день.
«0 15 10 * * ? 2005» срабатывает в 10:15 утра каждый день в 2005 году.
«0 * 14 * * ?» срабатывает каждую минуту с 14:00 до 14:59 каждый день.
«0 0/5 14 * * ?» срабатывает каждые 5 минут с 14:00 до 14:55 каждый день.
«0 0/5 14,18 * * ?» срабатывает каждые 5 минут с 14:00 до 14:55 и с 18:00 до 18:55 каждый день.
«0 0-5 14 * * ?» срабатывает каждую минуту с 14:00 до 14:05 каждый день.
«0 10,44 14 ? 3 WED» срабатывает в 14:10 и 14:44 по средам марта каждого года.
«0 15 10 ? * ПН-ПТ» срабатывает в 10:15 утра с понедельника по пятницу.
«0 15 10 15 * ?» Срабатывает в 10:15 утра 15-го числа каждого месяца.
«0 15 10 L * ?» Срабатывает в 10:15 утра в последний день каждого месяца.
«0 15 10 ? * 6L» срабатывает в 10:15 утра в последнюю пятницу каждого месяца.
«0 15 10 ? * 6L 2002-2005» срабатывает в 10:15 утра в последнюю пятницу каждого месяца с 2002 по 2005 год.
«0 15 10 ? * 6#3» срабатывает в 10:15 утра в третью пятницу каждого месяца.
Некоторые подвыражения могут содержать диапазоны или списки.
Например, подвыражение (день (неделя)) может быть «ПН-ПТ», «ПН, СР, ПТ», «ПН-СР, СБ».
«" символ представляет все возможные значения
поэтому,"«В подвыражении (месяц) это означает каждый месяц»,«В подвыражении (день(неделя)) означает каждый день недели
Символ «/» используется для указания приращения значения.
Например, «0/15» в подвыражении (минуты) означает, что начиная с 0-й минуты, каждые 15 минут.
«3/20» в подвыражении (минуты) означает, начиная с 3-й минуты и каждые 20 минут (то же самое значение, что и «3, 23, 43»).
Символ «?» используется только в подвыражениях «день (месяц)» и «день (неделя)» для указания того, что значение не указано.
Когда одному из двух подвыражений присваивается значение, во избежание конфликтов значение другого подвыражения необходимо установить равным «?».
Символ «L» используется только в подвыражениях «день» (месяц) и «день» (неделя) и является сокращением слова «last» (последний).
Однако его значение в двух подвыражениях различно.
В подвыражении «день (месяц)» «L» представляет последний день месяца.
В выражении дня (недели) «L» представляет последний день недели, то есть СБ.
Если перед «L» стоит что-то конкретное, то это имеет и другие значения.
Например: «6L» означает шестой день до конца месяца, а «FRIL» означает последнюю пятницу месяца.
Примечание: при использовании параметра «L» не указывайте список или диапазон, так как это может вызвать проблемы.
Специальные символы разрешены в значениях полей
Секунды 0-59, - * /
Баллы 0-59, - * /
Часы 0-23, - * /
Дата 1-31, - *? / LWC
Месяц 1-12 или ЯНВ-ДЕК, - * /
С понедельника по субботу или с воскресенья по субботу, - * ? / LC #
Год (необязательно) Оставьте пустым, 1970-2099 , - * /
Как настроить задания Cron в CentOS 8. Если у вас есть вопросы по этому поводу, пожалуйста, оставьте комментарий ниже.