crontab

Cron Jobs завършва урок за начинаещи

Cron Jobs завършва урок за начинаещи
Cron е най-полезната помощна програма в подобна на Linux или UNIX операционна система, която позволява стартиране на команди или скриптове по даден график без намеса на потребителя. Планираните команди и скриптове също се наричат ​​като cron задания. Използва се най-вече за автоматизиране на повтарящи се задачи като стартиране на планирани архиви, почистване на временни файлове, поддръжка на системата и различни други повтарящи се задачи. Той е подобен на Планировчика на задачи в ОС Windows.

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

Основи на Cron Job

Нека разберем някои основи на cron работа.

Какво е Crond?

Crond е демонът в системата Linux, който работи във фонов режим и проверява всяка минута, за да провери дали има планирана работа по това време. Ако има, той изпълнява тази работа, в противен случай остава неактивен.

Синтаксис на Cron Job

Синтаксисът за cron job е както следва:

* * * * * команда / скрипт

Отляво:

За да зададете множество стойности в поле, използвайте следните символи на оператора:

  1. Звездичка (*): За да посочите всички възможни стойности за поле
  2. Тире (-): Да се сопределя диапазон от стойности
  3. Запетаята (,): За да зададете списък със стойности
  4. Разделител (/): За да зададете стойност на стъпка

Редактиране на файл Crontab

Crontab е файл, който съдържа планираните задачи в определен синтаксис. Има два типа crontab файлове; едната за специфични за системата cron задачи, а другата за специфични за потребителя cron задачи.

Системни cron задачи

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

Системният администратор може да дефинира задание cron, като използва следната команда:

$ nano / etc / crontab

Ето синтаксиса на заданието в / etc / crontab файл:

# min hr dayofmonth месец dayofweek команда за потребителско име
* * * * * потребител1 ifconfig

Специфични за потребителя задания cron

Специфичните за потребителя задания cron се намират в /var / spool / cron / crontabs директория. Въпреки че можете да редактирате тези задачи ръчно, препоръчително е да ги редактирате с помощта на командата crontab -e.

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

$ crontab -e

Например, ако сте влезли като „тест“ потребител, стартирането на командата crontab -e ще редактира файла crontab за потребителя „тест“. По същия начин, ако сте влезли като root потребител, командата crontab -e ще редактира файла crontab за root потребителя.

Издайте командата по-долу в терминала, за да редактирате файла crontab за всеки друг потребител:

$ sudo crontab -u

Например, ако сте влезли като потребител „test1“ и искате да редактирате файла crontab за потребителя „test2“, командата ще бъде:

$ sudo crontab -u test2 -e

Ето синтаксиса на заданието cron, който може да бъде добавен във файла crontab:

# m h dayofmonth месец dayofweek команда
* * * * * ifconfig

Можете да видите в специфичните за потребителя задачи, че няма подадено „потребителско име“.

Команди на Crontab

Командата crontab се използва за редактиране, изброяване и премахване на задачите cron:

  • crontab -e За да редактирате crontab файла на текущия потребител
  • crontab -l За показване на съдържанието на файла crontab
  • crontab -u [потребителско име] За да редактирате crontab файл на всеки друг потребител
  • crontab -r За да премахнете файла crontab на текущия потребител
  • crontab -i За показване на подкана преди премахване на crontab файла на текущия потребител

Планиране на работа с Cron

С Cron можете да изпълните задача в точно определен час, дата и интервали с минимална единица за минути, т.е.д., можете да изпълнявате работа всяка минута.

За да планирате работа с cron, отворете файла crontab, като използвате метода, обсъден в предишния раздел. След като отворите файла crontab, ще бъдете подканени да изберете текстов редактор. Въведете номер, за да изберете предпочитания от вас текстов редактор. Превъртете надолу до дъното на файла и добавете задачи в синтаксиса, описан по-горе. Всеки ред във файл определя една команда. Първите пет записа в реда указват планираното време, а последният запис посочва коя команда или скрипт трябва да се изпълни.

Пример:

Следващият ред във файла crontab ще насрочи заданието cron да стартира командата / скрипта на всяка 30-та минута през последните 5 часа всеки ден от седмицата от понеделник до събота.

* / 30 5 * * 1-6 команда / скрипт

Минути

В това поле посочваме минутите, когато искаме командата да бъде изпълнена. Посочено е от 0 до 59. * В това поле означава да изпълнявате задачата всяка минута. В горния ред на crontab, * / 30 казва на заданието cron да изпълнява посочената команда / скрипт на всеки 30 минути.

Часа

В това поле посочваме часовете, в които искаме командата да бъде изпълнена. Посочено е от 0 до 23. * В това поле означава да изпълнявате задачата на всеки час. В горния ред на crontab стойността 5 казва на заданието cron да изпълнява посочената команда / скрипт на всеки пет часа.

Ден от месеца

В това поле посочваме конкретните дни от месеците, когато искаме командата да бъде изпълнена. Посочено е от 1 до 31. * В това поле означава всеки ден. В горния ред на crontab, * казва на заданието cron да изпълнява посочената команда / скрипт всеки ден.

Месец от годината

В това поле посочваме конкретните месеци, когато искаме командата да бъде изпълнена. Посочено е от 1 до 12. * В това поле означава всеки месец. В горния ред на crontab, * казва на заданието cron да изпълнява посочената команда / скрипт всеки месец.

Ден на седмицата

В това поле посочваме конкретните дни от седмицата, когато искаме командата да бъде изпълнена. Посочено е от 0 до 6 от неделя до събота (0 за неделя и 6 за събота). * В това поле означава всеки ден в седмицата. В горния ред на crontab, * казва на заданието cron да изпълнява посочената команда / скрипт всеки ден в седмицата.

Примери за Cron Jobs

Ето няколко примера за cron работни места:

Изпълнете cron задача на всеки 15 минути

За да планирате изпълнението на задача cron на всеки 15 минути, добавете реда по-долу във файла crontab:

* / 15 * * * * команда / скрипт

Изпълнявайте cron работа в 5 сутринта всеки ден

За да планирате да се изпълнява задача cron в 5 часа сутринта всеки ден, добавете долния ред във файла crontab:

0 5 * * * команда / скрипт

Изпълнявайте cron работа в 17:00 всеки ден

За да планирате изпълнението на cron работа в 17:00 всеки ден, добавете долния ред във файла crontab:

0 17 * * * команда / скрипт

Изпълнете cron работа в 9 часа сутринта на първия ден на всеки месец

За да планирате изпълнението на задание cron в 9 часа на първия ден на всеки месец, добавете долния ред във файла crontab:

0 9 1 * * команда / скрипт

Изпълнявайте cron работа всеки час на всеки 15-ти март

За да планирате задание за cron всеки час на всеки 15 март, добавете долния ред във файла crontab:

0 * 15 3 * команда / скрипт

Изпълнете cron задача на всеки 5 часа

За да планирате задание за cron на всеки 5 часа, добавете долния ред във файла crontab:

0 * / 5 * * * команда / скрипт

Изпълнете cron задача на всеки 15 минути

За да планирате изпълнението на задача cron на всеки 15 минути, добавете реда по-долу във файла crontab:

*/15 * * * *

Използване на низове

Следните низове също могат да се използват за дефиниране на работа:

  1. @hourly: За да изпълнявате работа веднъж на всеки час, т.е.д., „0 * * * *
  2. @ полунощ: За да изпълнявате работа веднъж на ден, т.е.д., „0 0 * * *
  3. @daily: същото като полунощ
  4. @ седмично: За да изпълнявате работа веднъж седмично, т.е.д., „0 0 * * 0
  5. @месечно: За да изпълнявате работа веднъж на месец, т.е.д., „0 0 1 * *
  6. @ ежегодно: За да изпълнявате работа веднъж годишно, т.е.д., „0 0 1 1 *
  7. @ година: същото като @ ежегодно
  8. @ рестартиране: За изпълнение на работа веднъж при всяко стартиране

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

@weekly команда / скрипт

Предварително дефинирани директории на Cron

Има някои предварително дефинирани cron директории в Linux, където съхранените скриптове се изпълняват автоматично. Ако поставим някакъв скрипт под тези директории, той ще се изпълни автоматично в конфигурираното време.

  • / etc / cron.ежедневно
  • / etc / cron.на час
  • / etc / cron.месечно
  • / etc / cron.седмично

Например, за да изпълните скрипт веднъж на месец, ще трябва да го поставите в / etc / cron.месечно.

Преглед на Cron Jobs

Преглед на задания за текущия потребител

Използвайте следната команда, за да видите всички планирани задания на cron за текущия потребител:

$ crontab -l

Преглед на задания за основните потребители

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

$ cat / etc / crontab

Ще трябва да влезете като root потребител или да изпълните командата като sudo.

Преглед на заданията за останалите потребители

За да видите всички насрочени задачи на конкретен потребител, издайте следната команда в Терминал, замествайки с действителното потребителско име:

$ sudo crontab -u

За да изпълните тази команда, ще ви трябват права на sudo.

Преглед на почасови задания cron

За да видите всички задания на cron, които са конфигурирани да се изпълняват на час, издайте следната команда в терминала:

$ ls -la / etc / cron.на час

Преглеждайте ежедневните задания за cron

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

$ ls -la / etc / cron.ежедневно /

Преглеждайте седмичните задания за cron

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

$ ls -la / etc / cron.седмично /

Преглеждайте месечните задания за cron

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

$ ls -la / etc / cron.месечно/

Архивирайте всички Cron работни места

Препоръчително е да запазите архив на всички cron задачи във файл, така че да можете да се възстановите в случай на изтриване. За да направите резервно копие на всички текущи задачи, използвайте оператора за пренасочване, за да пренасочите изхода на crontab -l към файл.

$ crontab -l> backup_cron.текст

Премахване на всички планирани Cron задания

За да премахнете всички планирани задания на cron, използвайте флага -r, както следва:

$ crontab -r

Cron разрешение

Можем да ограничим достъпа до командата crontab чрез два файла: / и т.н. / cron.позволи и / и т.н. / cron.отричам.

  • / etc / cron.позволява - Добавете потребители (по един на ред), на които искате да разрешите достъп до командите crontab. Тези потребители могат да изпълняват задания по график.
  • / etc / cron.отричам - Добавете потребители (по един на ред), на които искате да откажете достъп до командите crontab. Тези потребители не могат да изпълняват планирани задачи.

Генератори на синтаксис на Crontab

Има някои уебсайтове, които позволяват генериране на синтаксис за crontabs. Тези уебсайтове улесняват генерирането на crontab израз, без да се налага да запомняте синтаксиса. Въпреки че има различни уебсайтове за генератори на синтаксис като crontabgenerator.com, crontab-генератор.org и cronmaker.com. Този, който най-често предпочитам и намирам за полезен, е crontab.гуру. Въз основа на въведените от потребителя генерира израз crontab, който можете да копирате и поставите във файла crontab.

Заключение

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

Урок за битка за Уеснот
Битката за Уеснот е една от най-популярните стратегически игри с отворен код, които можете да играете по това време. Тази игра не само се разработва о...
0 А.д. Урок
От многото стратегически игри, 0 A.д. успява да се открои като изчерпателно заглавие и много дълбока, тактическа игра, въпреки че е с отворен код. Раз...
Урок за Unity3D
Въведение в Unity 3D Unity 3D е мощен двигател за разработка на игри. Това е кръстосана платформа, която ви позволява да създавате игри за мобилни уст...