Автоматизація завдань за допомогою Cron

Автоматизація завдань за допомогою Cron

Термінал Linux дозволяє нам робити речі, що виходять за рамки простого введення команд. У цьому випадку ми поговоримо про автоматизацію завдань за допомогою Cron. Автоматизація дозволяє нам не лише уникати повторюваних завдань, але й змушувати комп'ютер виконувати їх, коли нас немає поруч. Це особливо корисно на серверах.

Cron — це демон, який відповідає за виконання завдань через певний інтервал часу. Хоча його функція полягає у виконанні регулярних завдань з обслуговування системи, ми можемо додати й інші, які нас цікавлять.

Коли ми говоримо про демонів, ми не маємо на увазі маленького диявола всередині нашого комп'ютера. В обчислювальній техніці демон — це програма або процес, який працює у фоновому режимі операційної системи, не вимагаючи безпосередньої взаємодії з користувачем. Їхні обов'язки включають мережеві підключення, друк, веб-сервери та моніторинг ресурсів.

Деякі основні його особливості

  • Зазвичай вони починаються із завантаження системи.
  • Вони працюють у фоновому режимі, і користувач навіть не підозрює про їх існування.
  • Вони призначені для виконання завдань постійно або у відповідь на певні події.

Автоматизація завдань за допомогою Cron

Якщо ми хочемо вказати Cron, що робити, ми можемо зробити це за допомогою файлу crontab. Це просто текстовий файл, який містить послідовність команд, які cron має виконати у вказану дату. Існує два типи файлів crontab: файл crontab, створений системою, та файл crontab, створений користувачем.

За жодних обставин не можна торкатися системного файлу crontab, який використовується Linux для налаштування та обслуговування. Його неможливо помилково змінити, оскільки цей файл знаходиться в папці. /і т.д./crontab.

Створення власних crontab-файлів

Cron вимагає, щоб завдання, які ми йому призначаємо, мали параметри, зазначені в такому порядку:

h: Час початку в діапазоні 0-23.

m: Хвилини в інтервалі 0-59.

d: День місяця в інтервалі від 1 до 31

місяць: Визначає місяць року в діапазоні від 1 до 12

s: День тижня з інтервалом 0-6

Ці дані зберігаються у файлі crontab. Щоб створити цей файл, ми пишемо команду:
crontab –u nombre de usuario –e
Якщо crontab буде для користувача за замовчуванням, ми можемо пропустити параметр -u
Коли ми запускаємо його вперше, він повідомляє нам, що файл не існує, і пропонує створити його та відредагувати в одному з редакторів, встановлених на комп'ютері.

Деякі моменти, які слід пам'ятати під час редагування crontab:

  • Кожне завдання виконується на рядку
  • У всіх випадках необхідно вказати дату та час, коли кожне завдання має бути виконане. Для позначення періодичності (наприклад, вівторок о 18:XNUMX) замість решти параметрів пишуться зірочки.(*)
  • Можна призначити параметру більше одного значення (наприклад, вівторок та четвер о 18:XNUMX), розділяючи обидва значення комами.
  • Між параметрами необхідно залишати пробіли.
  • Вкажіть каталог, де знаходиться панель запуску команд.

Наприклад, якщо ми хочемо перезавантажувати комп'ютер щодня о 19:XNUMX:

0 19 * * * /sbin/reboot

Щоб перезапуск відбувався лише по середах, інструкція буде такою:

0 20 * * 3 /sbin/reboot.

Є кілька скорочень, які дозволяють нам уникнути запису всіх параметрів:

@щогодиниЯкщо ми хочемо виконати команду на початку кожної години.
@щодня: Виконувати команду на початку кожного дня.
@щотижня: Виконайте команду в перший день тижня.
@щомісячно: Команда виконується в першу хвилину кожного місяця.
@щорокуТе саме, але в першу хвилину кожного року..
Деякі приклади використання цієї команди:

@daily /bin/sh /ruta_al_script/nombre_del_script.sh Виконайте власні інструкції у bash-скрипті на початку дня.

@hourly /bin/python3 /ruta_al_script/nombre_del_script.py Змушує скрипт Python запускатися щогодини.

Нам завжди слід переконатися, що скрипти мають дозволи на виконання.