crontab

Як запланувати завдання в Linux?

Як запланувати завдання в Linux?
Кожного разу, коли використовується операційна система на основі UNIX, певні завдання слід виконувати неодноразово. Запуск їх кожного разу вручну трудомісткий і загалом неефективний. Для вирішення цієї проблеми UNIX постачається із вбудованими планувальниками завдань. Ці планувальники завдань діють як розумний будильник. Коли спрацьовує будильник, операційна система запустить задане завдання.

У випадку з Linux він постачається з двома основними, але потужними інструментами: демон Cron (планувальник завдань за замовчуванням) та at (більше підходить для одноразового планування завдань).

У цьому посібнику перевірте, як запланувати завдання в Linux.

Плануйте завдання в Linux

Крон
Демон cron відповідає за виконання багатьох завдань у певний час. Зазвичай ці завдання виконуються у фоновому режимі за розкладом. Він пропонує велику гнучкість незалежно від завдання, незалежно від інтервалу (години, тижня, місяця, року чи чогось іншого).

Cron відстежує свої дії, використовуючи файл crontab. Файл crontab - це сценарій, який містить всю необхідну інформацію для запуску всіх завдань cron.

Давайте швидко розглянемо деякі основні способи використання cron. У випадку будь-якої з наступних команд, вона буде налаштована для кореневого користувача, якщо вона запускається з привілеєм 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 буде запускати цільове завдання один раз, тоді як cron повторно запускатиме роботу з інтервалом. Інструмент at менш популярний у порівнянні з cron, але він порівняно простіший у використанні. Ви можете використовувати певні ключові слова, такі як опівночі чи чаї (4 с.М.).

Цей інструмент не встановлюється попередньо в більшості дистрибутивів Linux. Щоб встановити на, запустіть відповідну команду відповідно до дистрибутива.

Для Debian / Ubuntu та похідних.

$ Sudo apt install -y на


Для CentOS / RHEL та похідних.

$ yum встановити за адресою

Для Arch Linux та похідних.

$ sudo Pacman -S на

Для Fedora та похідних.

$ sudo dnf встановити на

Після завершення встановлення увімкніть демон.

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


Спосіб роботи трохи інший. Кожного разу, коли телефонуєш, ти повинен визначати інтервал виконання бажаного завдання. Наприклад, щоб запустити певну команду через годину, використовуйте таку команду.

$ зараз + 1 година


Щоб виконати бажане завдання при 6 P.М., через шість днів виконайте натомість таку команду.

$ о 18:00 + 6 днів


Коли ви запускаєте команду, за бажанням попросіть виконати команду (команди). Щоб вийти з підказки, натисніть “Ctrl + d.”Надалі буде представлений короткий опис запланованих завдань і час їх виконання.

Це лише базове використання. Більш послідовним способом використання at може бути виконання скрипта bash, що містить усі завдання, які потрібно виконати. Зацікавлені в тому, щоб дізнатись більше про сценарії bash? Перевірте

$ о 18:00 + 6 днів -ff