Задачата Cron или Cron е график, базиран на времето, често срещан в Linux / Unix системи. Той планира определени задания на потребителя да се изпълняват периодично на фиксирана дата, час или интервали. Повечето от тези задачи са скриптове за изпълнение на функции като архивиране и други. За да създадем тези cron задачи, използваме командите crontab. Crontab е UNIX команда / помощна програма, използвана за създаване и управление на cron задачи.
Както ще видите по-долу, създаването и редактирането на cron задача е съвсем просто. Най-невероятната част е, че не е необходимо да рестартирате cron или дори компютъра си след създаване или редактиране на cron работа. Просто запазете файла и сте готови.
Често използвани Cron Jobs
- Задаване на хардуерно време: Протоколът за мрежово време се използва от много компютри за задаване на системно време, но не задава хардуерното време. С cron можете да зададете хардуерното време въз основа на системното време.
- Планиране на задачи и стартиране на програми, изпълняващи ежедневни програми: С услугата cron можете да стартирате много системни услуги, които се нуждаят от ежедневна подкана като Logwatch.
- Почистване на директория автоматично, стартиране на резервни програми и много други.
Основни части на команда cron
Стандартният синтаксис на crontab е както по-долу:
a b c d e ИМЕ НА ПОТРЕБИТЕЛЯ / път / към / изход на скрипт
1.Часът и датата заедно с това колко повтаряща се работа ще бъдат посочени от петте полета:
-
- а: Протоколи: (в диапазона от 0 - 59)
- б: Часове: (от 0 - 23 )
- ° С: Дни: (вариращи от 0 - 31 )
- д: Месеци: (от 0 - 12 )
- д: Дни от седмицата: (вариращи от 0 - 7. )
- а: Протоколи: (в диапазона от 0 - 59)
Забележка: Дните започват с понеделник. 0 и 7 представляват неделя
2. ПОТРЕБИТЕЛ
: Не забравяйте да замените това с вашето потребителско име
3. Конкретното местоположение и скриптът, които трябва да бъдат изпълнени от cron, са определени от третия сегмент:
/ път / към / скрипт
4. Последният раздел определя известието до потребителя след приключване на работата като начин за проследяване на задачите:
изход
Входящата ви поща обаче може да е пълна с незначителни задачи, които често се канализират. За да избегнете това, можете да деактивирате автоматичното извеждане на имейл, като добавите низа по-долу към вашата команда cron:
> / dev / null 2> & 1 д.g a b c d e ПОТРЕБИТЕЛСКО ИМЕ / път / към / скрипт> / dev / null 2> & 1
Освен това cron използва още четири стойности, използвани при задаване на множество стойности в поле. Те са:
- Звездичка (*): Отнася се за всички стойности в дадено поле.
- Запетая (,): Използвайте за отделяне на списък със стойности в командата cron.
- Тире (-): Посочете диапазон от стойности.
- Наклонена черта напред (/): разделя стойност на различни стъпки.
Настройване на задачите cron
Командите crontab са отговорни за създаването и редактирането на cron задачи, тъй като cron файловете не трябва да се редактират директно. Crontab определя как можете да създавате, редактирате, изброявате, отстранявате грешки, инсталирате и деинсталирате cron задачите.
Преди да започнете с cron задания, от съществено значение е да се уверите, че вашият Linux Desktop или сървър е актуален, като изпълните командите по-долу:
актуализация на sudo apt
Ако нямате инсталиран пакет cron на вашата система, инсталирайте го с командата по-долу:
sudo apt-get install cron
Как да редактирате файла crontab?
За да завършите процеса, ще трябва да конфигурирате заданието cron. Потребителят, влязъл в системата при създаване на задание cron, автоматично става собственик. Това може да бъде променено чрез създаване на собственик на работа, който ще отговаря за управлението на заданието cron, както ще видим в тази публикация.
За да отворите конфигурационния файл на crontab за потребителя, който влезе в момента, изпълнете командата по-долу:
crontab -e
Системата ще ви подкани да изберете подходящ редактор. В нашия случай ще изберем първата опция (нано редактор).
Можете да добавите по една планирана задача на ред според вашите предпочитания.
След добавяне на задачите завършете, като запазите файла и излезте. Всички предоставени инструкции ще бъдат прочетени и изпълнени от демона cron. Промените ще бъдат приложени дори без рестартиране на вашата система, тъй като хранилището се актуализира автоматично.
Редактирайте crontab за различен потребител
Crontab може да се редактира за различни потребители с помощта на команда в синтаксиса по-долу:
crontab -u друго_потребителско име -e
Как да използвам специални символи в командите на crontab
Символите и операторите диктуват повече персонализиране на вашата система, тъй като разширяват възможностите на cron задача.
- Наклонената черта се използва за разделяне на времеви низ на определени стъпки. Например, за да стартираме резервно копие на всеки 30 минути, можем да използваме:
* / 30 * * * *
- Звездичката (*) се използва за изпълнение на всички стойности, които трябва да бъдат изпълнени. Например:
*/15***
- Тирето (-) се използва за определяне на обхвата на дейностите, например броя на дните. За
например, използвайки кода в 6 сутринта всеки делничен ден, ще използваме;
0 6 * * 1-5 / корен / архивиране.ш
Тук 06 означава 6 сутринта, 1-5 означава броя на дните (от понеделник до петък).
- Запетая определя отделните случаи, когато кодът трябва да се изпълнява:
0 4 * * 2,4 / корен / архивиране.ш
Командата по-горе ще изпълни кода на вашия скрипт в 4 часа сутринта във вторник и четвъртък.
- Можете също така да комбинирате различни заместващи символи, за да персонализирате още повече командите си. Например, за да изпълним нашия скрипт през ден в 35 минути след час, можем да използваме командата по-долу:
35 1-23 / 2 * * * / път / към / скрипт / скрипт.ш
1-23 определя диапазона от часове, / 2 задава интервала на всеки друг час.
Cron Options
- Избройте всички cron работни места
Може да искате да изброите cron заданията във вашата система, без да отключвате crontab конфигурационния файл. Това може да стане чрез стартиране на терминала и въвеждане на командата по-долу:
crontab -l
Тази команда изброява всички cron задачи, налични във вашата система.
- Изтрийте всички задания на crontab
За да изтриете всички команди crontab, можете да използвате командата по-долу:
crontab -r
- Изтрийте cron задача за друг потребител.
crontab -r -u друго-потребителско име
Използвайте низове в Crontab
Низовете са изключително полезни инструменти за разработчиците, тъй като избягват повтарящото се писане на кодови сегменти. За щастие crontabs поддържат различни стойности на низове. Те включват:
@hourly:
-същото като - „0 * * * *“ (Изпълнява се веднъж на всеки час)@ полунощ:
-същото като - „0 0 * * *“ (Изпълнява се веднъж на всеки ден)@daily:
същото като полунощ@ седмично:
-същото като - „0 0 * * 0“ (Изпълнява се веднъж на всеки седмица)@месечно:
-същото като - „0 0 1 * *“ (Изпълнява се веднъж на всеки месец)@ ежегодно:
-същото като - „0 0 1 1 *“ (Изпълнява се веднъж на всеки година)@ година:
подобно на @ ежегодно@ рестартиране:
Изпълнява се веднъж след всяко рестартиране / рестартиране / стартиране.
Добър пример; ако имате резервен скрипт, който искате да стартирате всеки ден, използвайте командата по-долу:
@daily / path / to / backup_script.ш
Примери за cron работни места
Ето списък на основните cron задачи, които могат да се използват при започване:
-
- За да стартирате скрипт всяка минута:
* * * * * / вашия / скрипт / път.ш
- За да стартирате скрипт на всеки 40 минути:
40 * * * * / your / script / path.ш
- За да стартирате скрипт на всеки час:
0 * * * * / your / script / path.ш
- За да стартирате скрипт всяка полунощ:
0 0 * * * / your / script / path.ш
- За да стартирате скрипт на всеки 23 минути след полунощ, 2 ч. И 4 ч. Сутринта всеки ден:
23 0-23 / 2 * * * / your / script / path.ш
- За да стартирате скрипт в 4.05 всяка неделя.
5 4 * * sun / your / script / path.ш
- За да стартирате скрипт в 22:00 през седмицата.
0 22 * * 1-5 / вашия / скрипт / път.ш
- За да стартирате скрипт на 1 декември - полунощ.
0 0 0 12 * / your / script / path.ш
- За да стартирате сценарий в събота в полунощ.
0 0 * * 6 / your / script / path.ш
- За да стартирате скрипт на всеки час.
0 * * * * / your / script / path.ш
- За да стартирате скрипт всяка минута:
С тези основни примери ще получите по-задълбочено разбиране на последователността и как тя може да бъде модифицирана.
Ограничаване на достъпа до Cron
Виждаме, че cron заданията могат да ви бъдат много полезни, особено когато искате да автоматизирате задачите си. Въпреки това може да бъде рисковано, ако системата позволява на всеки потребител да създаде cron работа. Дори ако това не се отразява на личните данни, някои cron задачи могат да отнемат доста голямо количество системни ресурси, като по този начин изостават компютъра. За да избегне подобни сценарии, системният администратор (root потребител) може да създаде / etc / cron.позволява
или / etc / cron.отричам
файлът, който съдържа само потребители, които могат „създаване / не-създаване“ cron работа.
The / etc / cron.позволява
файлът съдържа потребители, които могат да създават, редактират, показват или премахват crontab файлове. Ако този файл не съществува, всички потребители могат да създават и управляват cron задачи, различни от тези в / etc / cron.отричам
файл. Ако няма нито един от тези файлове, за изпълнение на командата crontab се изискват права на суперпотребител.
Сега, след като сте попречили на некоренните потребители да създават cron задания, ако те вече са имали такива, може да помислите за добавяне на техните cron задания в root crontab файла. Но тук има пъзел - добавяйки техните cron задания към root crontab, това не изпълнява техните cron задачи като root? Е, тук идва значението на полето USERNAME, което обсъдихме по-горе в синтаксиса на командата cron. Например командата по-долу:
0 * * * * fosslinux / path / to / script.ш
Ще се изпълнява като потребителска задача „fosslinux“ cron, а не като главен потребител.
Заключение
Вече имате ясно ръководство за използване на задания Cron за автоматизиране на различни задачи във вашата система. Това не трябва да ви обърква със стартиращи приложения. Използвайте примерите по-горе, за да опитате и автоматизирате прости скриптове. С течение на времето можете да комбинирате специални знаци и заместващи карти, за да изпълнявате много по-светски задачи. Ако тепърва започвате, би било чудесно да прочетете публикацията ни в урок за скриптове на bash с примери, които ще ви помогнат да създадете първия си скрипт.