crontab

Как да планирате задача в Linux?

Как да планирате задача в Linux?
Винаги, когато се използва операционна система, базирана на UNIX, определени задачи трябва да се изпълняват многократно. Изпълнението им ръчно всеки път отнема много време и като цяло е неефективно. За да разреши този проблем, UNIX идва с вградените си планиращи задачи. Тези планиращи задачи действат като интелигентен будилник. Когато алармата се включи, операционната система ще изпълни предварително зададената задача.

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

В това ръководство проверете как да планирате задача в Linux.

Планирайте задачи в Linux

Крон
Демонът cron е отговорен за изпълнението на много задачи в точно определено време. Тези задачи обикновено се изпълняват във фонов режим по график. Той предлага голяма гъвкавост, независимо от задачата, независимо от интервала (час, седмица, месец, година или каквото и да е друго).

Cron следи действията си, използвайки файла crontab. Файлът crontab е скрипт, който съдържа цялата необходима информация за изпълнение на всички задания на cron.

Нека да разгледаме набързо някои от основните употреби на cron. В случай на някоя от следните команди, тя ще бъде конфигурирана за root потребителя, ако се изпълнява с привилегия sudo. За демонстрация взех примерен файл crontab от тук.

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

$ crontab -l


Искате списък със задания cron за различен потребител? Вместо това изпълнете тази команда.

$ sudo crontab -u -l


За да редактирате скрипта crontab, изпълнете командата. За да редактирате файла crontab за root, изпълнете следната команда с привилегия sudo.

$ crontab -e


Всеки ред в скрипта crontab дефинира задача. Ето бърза разбивка на записите в crontab.

$

Ето списък на всички възможни стойности за всички тези полета. Ако се използва звездичка (*) вместо цифрова стойност, ще се използва всяка възможна стойност на полето.

  • минута: 0 до 59
  • часа: 0 до 23
  • ден от месеца: от 1 до 31
  • месец: от 1 до 12
  • ден от седмицата: 0 (неделя) до 6 (събота)

За задълбочено ръководство за това как да използвате crontab за автоматизиране на задачи, вижте как да настроите cron работни места в Linux. Ето още един бърз пример за работа на cron, която се изпълнява всяка минута.

в
Докато cron е основният начин за планиране на задачи, at предлага възможността да стартира команда / скрипт в точно определено време или на фиксиран интервал, имайте предвид, че at ще стартира целевата работа веднъж, докато cron ще повтори работата в интервала. Инструментът at е по-малко популярен в сравнение с cron, но е сравнително по-лесен за използване. Можете да използвате определени ключови думи като полунощ или време за чай (4 С.М.).

Този инструмент не е предварително инсталиран в повечето дистрибуции на Linux. За да инсталирате в, изпълнете съответната команда според вашата дистрибуция.

За Debian / Ubuntu и деривати.

$ Sudo apt install -y на


За CentOS / RHEL и производни.

$ yum инсталиране на

За Arch Linux и деривати.

$ sudo Pacman -S при

За Fedora и производни.

$ sudo dnf инсталиране на

След като инсталацията приключи, активирайте at daemon.

$ sudo systemctl enable --now atd.обслужване


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

$ в момента + 1 час


За да изпълните желаната задача при 6 P.М., шест дни след това, изпълнете следната команда вместо това.

$ в 18:00 + 6 дни


Когато стартирате командата, по желание ще поискате командата (ите) да се изпълни. За да излезете от подканата, натиснете „Ctrl + d.”В момента ще представим обобщение на планираните задачи и времето, в което те ще бъдат изпълнени.

Това е само основно използване. По-последователен начин за използване на at може да бъде изпълнението на bash скрипт, съдържащ всички задачи, които трябва да бъдат изпълнени. Интересувам се да науча повече за bash скриптове? Проверете

$ в 18:00 + 6 дни -ff