Как да създавате и добавяте работни места за Cron в Linux

Планиране на периодични задачи с помощта на Cron в Linux

cron е програма за Linux, която се използва за планиране на команда или скрипт, които да бъдат изпълнени в по-късен момент. Може да се използва и за планиране на периодично изпълнявани команди и скриптове. Програмите, планирани с помощта на cron, обикновено се наричат Cron Jobs. Основната му употреба е за задачи по системна администрация, като редовно архивиране, редовни актуализации на софтуера и други подобни задачи за поддръжка.

Въведение

cron работи като демон в Linux, т.е. като фонов процес. Той позволява на потребителите да планират задачи директно с командата crontab, която отваря конфигурационен файл, наречен Cron File в редактор. За всеки потребител се създават отделни Cron файлове.

Създаване на Cron файл и основен синтаксис

В crontab командата може да се изпълни с флаг за редактиране на съществуващ Cron файл. Ако файлът все още не съществува, той ще бъде създаден. Ако потребителят извиква командата за първи път и ако има множество файлови редактори, инсталирани в системата Linux, командата ще поиска от потребителя да избере редактор по подразбиране от списък с редактори.

След като изберете редактора, ще бъде създаден и отворен cron файл за потребителя. Вече можете да посочите задания във файла.

Общият синтаксис за определяне на Cron Job е:

По принцип, на ще работи в посочената 'минута' (0-59), 'час' (0-23), 'ден от месеца' (1-31), месец (1-12), ден от седмицата, (0-7, За неделя може да се използва 0 или 7) в Cron Job. За да опростим, нека вземем пример:

1 2 3 4 5 echo "Здравей"

Това означава командата ехо "Здравей" ще работи на всеки пети ден от седмицата (петък) и всеки 3-ти ден от месеца, на всеки 4-ти месец от годината (април), в час 02:01 (2-ри час първа минута).

Ако същата команда трябва да се изпълнява всеки ден в 02:01, синтаксисът ще изглежда така:

1 2 * * * ехо "Здравей"

В * означава „винаги“ или „за всички“, напр. за всички месеци, за всички дни от седмицата и т.н.

Командният оператор (,) може да се използва за въвеждане на списък със стойности, когато задачата трябва да се повтори. Например:

0 2,3,4 * * * echo "Здравей"

Това ще изпълнява програмата в 2 сутринта, 3 сутринта и 4 сутринта всеки ден.

По същия начин, тире (-) оператор може да се използва за определяне на диапазон, за който задачата трябва да се повтори. Например:

0-20 2 * * * ехо "Здравей"

Това ще стартира програмата в 02:00, 02:01, 02:02 и така нататък до 02:20.

Най-накрая имаме наклонената черта ( / ) оператор. Този оператор се използва за определяне на интервална стойност, според която задачата ще се повтаря. напр. */15 в полето минути означава, че задачата трябва да се повтаря на всеки 15 минути. 2-10/2 в полето за часове указва, че задачата трябва да се повтаря между 2 сутринта и 10 сутринта след всеки 2-часов интервал (2 сутринта, 4 сутринта, 6 сутринта, 8 сутринта, 10 сутринта).

*/15 2-10/2 * * * ехо "Здравей"

След като сте направили записа във файла Cron, запазете файла и излезте от редактора.

Трябва да видите a „инсталиране на нов crontab“ съобщение в терминала след запазване и излизане от файла crontab.

Макроси

Определени макроси са предварително дефинирани в Cron, които определят някои често необходими интервали от време, като всеки час, всеки ден, всеки месец и т.н.

За да изпълнявате задача веднъж всеки ден в началото на деня, т.е. в 00:00, използвайте макрос @ежедневно. Това е еквивалентно на 0 0 * * *.

Можете да поставите това във файла Cron по същия начин, както е описано по-горе.

По подобен начин могат да се използват и другите макроси, т.е. @на час (Минута 0 на всеки час), @месечно (00:00 на първия ден от месеца), @седмично (00:00 на първия ден от седмицата, @годишно(00:00 на първи януари всяка година), @рестартиране (при всяко стартиране на компютъра).

Заключение

В тази статия научихме как да добавим Cron Jobs за редовно изпълнение в Linux. Правилното използване на Cron Jobs е полезно дори за най-досадните ръчни задачи, пред които е изправен потребителят, напр. редовно изтриване на стари логове, архивиране на всякакви студени данни (данни, които рядко са достъпни) и т.н.

Категория: Linux