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 .
Виждали сме и редица примери за изрази, които можем да използваме в ежедневната си работа, или просто да заключим от други изрази.