Як створити Завдання Cron в Linux: Ubuntu Cron Job
Автоматизація завдань в Linux стала більш керованою. А саме, ця функція досягається за допомогою crontab, які дозволяють нам планувати кілька завдань, які користувачі хочуть виконати в певний час, кожне з яких називається завданням cron.
Завдання cron - це сценарії командного інтерпретатора або команди Linux, зазначені у файлах crontab, які надалі контролюються демоном cron і виконуються в певний час.
У цій статті ми розглянемо, як налаштувати завдання cron в Ubuntu 22.04 і як працюють завдання cron в операційній системі Linux.
Що таке завдання Cron?
Cron - це планувальник завдань на основі часу для дистрибутивів Linux/Unix. Він дозволяє планувати завдання на запуск через певний проміжок часу. За допомогою завдань cron ви можете автоматизувати завдання адміністрування та обслуговування системи в операційній системі Linux. Ви також можете використовувати завдання cron в Linux для різних цілей, таких як
- Автоматизувати процес резервного копіювання баз даних, файлів і системних каталогів через певні проміжки часу. Це не тільки забезпечує доступність даних у разі збою системи або втрати даних, але й зосереджує увагу на їх цілісності.
- Адміністратори Linux можуть використовувати завдання cron в Ubuntu для створення та надсилання автоматизованих звітів у запланований час. Ці звіти надають інформацію про події, пов'язані з безпекою, продуктивністю системи або іншими критично важливими діями. Таким чином, завдання cron допомагають покращити процеси моніторингу та прийняття рішень.
- За допомогою crontab можна періодично перевіряти доступність служб. Такий підхід до моніторингу допомагає виявляти та усувати перебої в роботі сервісів.
Нижче ми розглянемо, як встановити і використовувати утиліту cron job в Ubuntu.
Передумови
Щоб встановити і використовувати завдання cron в Ubuntu, ви повинні мати наступні передумови:
- Ubuntu 22.04 або стабільна версія повинна бути запущена у вашій системі або у VirtualBox.
- Ви повинні мати привілеї sudo або root для встановлення та запуску необхідних утиліт.
Покрокова інструкція: Як створити завдання cron в Linux?
У більшості дистрибутивів Linux утиліта cron є попередньо встановленою. Однак ви можете перевірити встановлення за допомогою команди «systemctl status cron». Відкрийте термінал за допомогою «Ctrl + Alt + t» і введіть команду нижче, щоб перевірити стан виконання:
$ sudo systemctl status cron
Встановлення утиліти Cron в Ubuntu 22.04
Якщо ви отримаєте такий самий результат на вашому терміналі, то демон cron запущений і працює у вашій системі Ubuntu. Але, якщо служба не знайдена або утиліта cron з якихось причин не встановлена у вашій системі, ви можете встановити утиліту cron у вашій системі Ubuntu 22.04, виконавши наступні кроки:
Крок 1: Оновлення системних пакетів
Першим рекомендованим кроком є оновлення локальних сховищ вашої системи, включаючи всі пакунки, за допомогою команди «apt update»:
$ sudo apt update
Крок 2: Встановлення Cron в Ubuntu
Щоб використовувати завдання cron, вам потрібно встановити утиліту cron у вашій системі Linux. В Ubuntu 22.04 ви можете встановити утиліту cron зі стандартних репозиторіїв Ubuntu apt за допомогою наступної команди:
$ sudo apt install cron
Після встановлення утиліти cron у вашій системі ви зможете планувати і періодично виконувати завдання в певні дати, місяці, тижні, години і часові інтервали.
Крок 3: Увімкніть і запустіть службу cron
Тепер увімкніть і запустіть службу cron, щоб вона працювала у фоновому режимі, навіть якщо ви перезавантажуєте систему. Для цього скористайтеся наступною командою:
$ sudo systemctl enable cron
Після увімкнення цієї служби у вашій системі буде створено символічне посилання. Запустіть службу cron за допомогою цієї команди:
$ sudo systemctl start cron
Тепер знову перевірте стан запуску cron. На екрані має з'явитися наступний результат:
Створення завдань cron у Linux
Усі завдання cron визначено у таблиці конфігураційного файлу cron, відомої як «crontab». Отже, щоб створити нове завдання cron, вам потрібно створити або запустити crontab за допомогою наведеної нижче команди:
$ crontab -e
Якщо ви запускаєте crontab вперше у вашій системі, вам потрібно буде вибрати опцію для вибору файлового редактора, який ви можете використовувати для запуску ваших завдань cron. Тут ми виберемо редактор /bin/nano і натиснемо Enter.
На екрані з'явиться файл crontabfile. Цей файл заповнить термінал базовим синтаксисом виразів cron.
Тут ви помітите символ «#» на початку кожного рядка. Цей символ вказує на наявність коментаря до рядка.
Базовий синтаксис завдання cron
Завдання cron записується за допомогою спеціального виразу cron. Цей вираз складається з двох частин: запланованого часу і команди, яку ви хочете виконати у вашому терміналі.
Зазвичай синтаксис завдання cron має шість параметрів або аргументів, розділених пробілами. Отже, перші п'ять - це зірочки, що позначають запланований час виконання, а інший аргумент - команда або скрипт командного рядка з повним шляхом до файлу.
Коли ви плануєте завдання cron у вашій системі, він використовує шаблон п'яти зірочок (*). Кожна зірочка позначає час у наведеному нижче порядку:
[minute] [hour] [day of month] [month] [day of week] [command].
Cron виконує команди лише тоді, коли налаштування хвилин, годин і місяців збігаються з поточним часом, а принаймні одне з налаштувань дня - день місяця або день тижня - збігається з поточною датою. Ви можете використовувати певні дозволені значення для цих параметрів:
Поле Допустимі значення
Хвилина В діапазоні від 0 до 59
година 24-годинний формат від 0 до 23.
день місяця Приймає значення від 1 до 31.
місяць Приймає значення від 1 до 12 місяців або назви типу СІЧ - ГРУД.
день тижня Відображає 7 днів тижня від 0 до 6 або дні з назвами SUN - SAT.
Пояснимо синтаксис часу виконання cron на прикладі:
Приклад
Наприклад, ви хочете запускати завдання cron о 14:00 щосереди. В цьому випадку синтаксис вашого завдання cron буде наступним:
0 12 * * 3 <command>
У наведеному вище виразі cron «0» означає, що завдання буде запущено один раз, «12» означає, що завдання буде запущено о 12 годині дня (з використанням 24-годинного формату), «* *» означає, що завдання буде запущено щодня протягом місяця, а «3» означає, що воно буде запущено в середу.
Розглянемо інший приклад: ви хочете щохвилини виводити на екран «рядок повідомлень» з датою за допомогою команди echo. Цей рядок буде додано до файлу «testfile.text».
* * * * * echo "Welcome, $date" >> $HOME/Documents/testfile.txt
Наведена вище команда створить файл у домашньому каталозі вашої системи з назвою «testfile.txt».
Відкрийте цей файл, і ви побачите наступний вміст:
Керування завданнями cron у Linux
Після створення завдання cron ви можете легко керувати цими завданнями. При роботі з crontab важливо дотримуватися обережності, оскільки неправильні налаштування або конфігурації можуть призвести до неочікуваних результатів. Також важливо регулярно контролювати і тестувати заплановані завдання, щоб гарантувати, що ваші автоматизовані процеси працюють правильно.
Щоб переглянути всі завдання cron, ви можете скористатися наступною командою:
$ crontab -l
Як ви можете бачити на скріншоті, виконується лише одне завдання cron, і це те, яке було створено вище.
Перегляд користувацьких завдань cron у Linux
Аналогічним чином ви можете керувати користувацькими завданнями cron. Файли crontab для кожного користувача зберігаються у каталозі spool. Якщо ви перелічите всі файли каталогу spool, ви зможете легко відстежувати користувацькі файли crontab за допомогою наступної команди:
$ ls /var/spool/cron/crontabs
Ви також можете перерахувати користувацькі файли crontab за допомогою наступної команди з привілеями «root»:
$ crontab -u <user-name> -l
Замініть «username» на ваше ім'я користувача.
Видалення завдання системного cron Ubuntu
Якщо ви хочете видалити завдання cron в Linux, скористайтеся наступною командою:
$ crontab -r
Щоб видалити завдання cron конкретного користувача, скористайтеся цією командою:
$ crontab -r -u <username>
Редагування завдання Cron
Якщо ви хочете відредагувати файл для певного користувача, ви можете відредагувати завдання cron за допомогою наступної команди:
$ crontab -u <username> -e
Перегляд журналу завдань cron
За замовчуванням, дії і журнали, пов'язані зі службою cron, зберігаються у глобальному файлі журналу, розташованому за адресою «/var/log/syslog». Щоб переглянути конкретні дії та повідомлення служби cron, ви можете скористатися командою «grep» для фільтрації та вилучення відповідної інформації з файлу syslog.
$ grep CRON /var/log/syslog
Це дозволить вам виокремити і відобразити лише записи, пов'язані з діяльністю служби cron.
Ви також можете керувати загальносистемними файлами crontab. Ці системні crontab, які містять заплановані завдання для всієї системи, доступні лише користувачеві root. Інші користувачі не можуть їх змінювати.
На відміну від користувацьких crontab, не існує спеціальної команди «crontab» для безпосереднього редагування цих системних crontab. Замість цього системні адміністратори повинні мати доступ до цих файлів і редагувати їх безпосередньо, щоб вносити будь-які зміни або доповнення до загальносистемних запланованих завдань. Щоб отримати доступ до вмісту цих загальносистемних файлів, скористайтеся наведеною нижче командою:
$ nano /etc/crontab
Якщо ви використовуєте VPS-хостинг для вашої системи Linux, скористайтеся наведеними вище кроками для додавання нових завдань cron за допомогою crontab. Аналогічно, використовуючи різні інструменти, ви можете легко керувати завданнями cron на вашому комп'ютері.
Висновок
У цьому посібнику ми дізналися, як використовувати утиліту cron в Ubuntu 22.04 для автоматизації завдань в Linux. Cron - це утиліта, яка допомагає планувати і налаштовувати виконання завдань у певний час, у певні дні або через певні проміжки часу.
Cron є зручним інструментом, який часто використовується системними адміністраторами для полегшення своєї роботи. Після прочитання цього посібника ви повинні добре розуміти, як використовувати cron для планування завдань у ваших системах Linux.
Якщо вам потрібна додаткова інформація, ви завжди можете звернутися до офіційної сторінки документації Cron або відвідати сторінку посібника з crontab. Для отримання довідки про crontab скористайтеся командою «man cron» у терміналі.
Blog