Ръководство за Cron изрази

1. Общ преглед

Просто казано, cron е основна помощна програма, достъпна в Unix-базирани системи. Позволява на потребителите да планират периодично изпълнение на задачи на определена дата / час. И, естествено, това е чудесен инструмент за автоматизиране на много процеси, които иначе биха изисквали човешка намеса.

Cron работи като демонен процес - това означава, че трябва да се стартира само веднъж и той ще продължи да работи във фонов режим. Този процес използва crontab за четене на записите на графиците и стартира задачите.

С течение на времето форматът на cron израз стана широко приет и много други програми и библиотеки го използват.

2. Работа с Crontab

А Cron график е обикновен текстов файл, намиращ се под / Var / макара / Cron / crontabs на Linux системи. Не можем директно да редактираме crontab файловете ; трябва да получим достъп до него с помощта на командата crontab .

Например, за да отворим crontab файл, трябва да задействаме тази команда:

crontab -e

Всеки ред в crontab е запис с израз и команда за изпълнение:

* * * * * /usr/local/ispconfig/server/server.sh

Този запис изпълнява споменатия скрипт на всяка минута.

3. Cron Expression

Нека разберем израза cron ; тя се състои от пет полета:

3.1. Специални знаци в израз

  • * (всички) - указва, че събитието трябва да се случи за всяка времева единица. Например „*“ в полето < minute> - означава „за всяка минута“
  • ? (всякакви) - използва се в полетата < ден-на-месец> и < ден-на-седмица> за обозначаване на произволна стойност - пренебрегвайте стойността на полето. Например, ако искаме да задействаме скрипт на „5-то число на месеца“, независимо кой ден от седмицата попада на тази дата, тогава указваме „ ? "В < ден от седмицата от> областта
  • - (диапазон) - определя диапазона на стойностите. Например „ 10-11 “ в поле означава „10-ти и 11-ти час“
  • , (стойности) - указва множество стойности. Например „ ПН, СР, ПТ“ в поле < ден от седмицата> означава в дните „Понеделник, Сряда и Петък“
  • / (инкременти) - определя инкременталните стойности. Например, „5/15“ в полето < minute> , означава „5, 20, 35 и 50 минути на час“
  • L (последен) - има различни значения, когато се използва в различни области. Например, ако се прилага в полето < ден-на-месец> , това означава последен ден от месеца, т.е. „31-ви за януари“ и така нататък според календарния месец. Може да се използва със стойност на отместване, като „ L-3 “, което означава „третия до последния ден от календарния месец“. В < ден от седмицата> , той посочва „последния ден от седмицата“. Може да се използва и с друга стойност в < ден от седмицата> , като „ 6L “, което означава „последния петък“
  • W (делничен ден) - определя делничния ден (от понеделник до петък), най-близък до даден ден от месеца. Например, ако посочим „ 10W “ в полето < ден от месеца> , това означава „делничен ден близо до 10-то число на този месец“. Така че, ако „10-ти“ е събота, тогава работата ще бъде задействана на „9-ти“, а ако „10-ти“ е неделя, тогава ще се задейства на „11-ти“. Ако посочим „ 1W “ в < деня на месеца> и ако „1-ви“ е събота, тогава работата ще се задейства на „3-ти“, който е понеделник, и няма да се върне към предишния месец
  • # - указва „ N- тото“ появяване на делничен ден от месеца, например „3-ти петък от месеца“ може да бъде посочен като „ 6 # 3

3.2. Примери за израз на Cron

Нека да видим някои примери за cron израз, като използваме комбинациите от полета и специални символи:

В 12:00 ч. (Обед) всеки ден:

0 12 * * ?

На всеки 5 минути, започвайки от 13:00 и завършвайки в 13:55 и след това започващ в 18:00 и завършващ в 18:55, всеки ден:

0/5 13,18 * * ?

Всяка минута, започваща в 13:00 и завършваща в 13:05, всеки ден:

0-5 13 * * ?

В 13:15 ч. И 13:45 ч. Всеки вторник през месец юни:

15,45 13 ? 6 Tue

В 9:30 ч. Всеки понеделник, вторник, сряда, четвъртък и петък:

30 9 ? * MON-FRI

В 9:30 сутринта на 15-ия ден на всеки месец:

30 9 15 * ?

В 18 часа на последния ден от всеки месец:

0 18 L * ?

В 18 ч. На 3-ти до последен ден на всеки месец:

0 18 L-3 * ?

В 10:30 сутринта в последния четвъртък на всеки месец:

30 10 ? * 5L

В 10 часа сутринта на третия понеделник на всеки месец:

0 10 ? * 2#3

В 12 ч. Полунощ всеки ден в продължение на пет дни, започвайки на 10-ия ден от месеца:

0 0 10/5 * ?

4. Cron Special Strings

В допълнение към полетата, посочени в израза cron, има и поддръжка за някои специални, предварително дефинирани стойности - които можем да използваме вместо полетата:

  • @reboot - стартирайте веднъж при стартиране
  • @yearly или @an Yearly - стартирайте веднъж годишно
  • @monthly - провеждайте веднъж месечно
  • @ седмично - провеждайте веднъж седмично
  • @daily или @midnight - изпълнявайте веднъж на ден
  • @hourly - бягайте на час

5. Заключение

В тази бърза статия разгледахме задачите cron и crontab .

Виждали сме и редица примери за изрази, които можем да използваме в ежедневната си работа, или просто да заключим от други изрази.