Як перевірити роботу cron у Linux: 4 кращих методи

Планування — запорука успіху. Отримати бажану роботу набагато простіше, якщо грамотно сплануєте своє навчання. Загубитися у новому місті набагато легше, якщо не спланувати свою поїздку заздалегідь.

Так само і з організацією роботи вашої системи: вона працюватиме ефективніше, якщо ви поставите щоденні задачі на повтор. Для цього є утиліта cron. Проте щоб мати план та дотримуватися його, необхідно, щоб цей інструмент працював справно.

* cron — це планувальник завдань для Linux і Unix-подібних операційних систем. Він попередньо встановлений у всіх дистрибутивах. Щоб cron працював належним чином, його необхідно періодично перевіряти.

Ми вже розглядали утиліту at, з якою ви можете планувати разові завдання. Тепер зупинимося на автоматизації щоденних тасок. А саме — розглянемо як перевірити правильність роботи cron.

Трохи теорії

Cron — це обробник завдань, що автоматизує та планує системні завдання.

Цей інструмент знадобиться, якщо справа заходить за налаштування чи обслуговування програмного середовища. Допоможе запланувати виконання завдань, таких як команди чи сценарії оболонки. Він за вас періодично виконуватиме їх у конкретний час або з певними інтервалами.

Основна мета cron — автоматизувати завдання обслуговування або адміністрування системи, які вам доводиться часто виконувати.

Як перевірити, чи працює cron у Linux

Ось чотири способи перевірити, чи правильно працює cron:

Спосіб 1. Перевірте статус служби

Перевірте стан служби за допомогою базової команди Linux. Натисніть Ctrl+Alt+T, щоб відкрити термінал, та виконайте команду systemct:

sudo systemctl status cron

Якщо отримуєте такий результат, то cron активний та працює справно:

Якщо cron неактивний і ви бачите таке виведення, це означає, що службу треба запустити: 

Для цього виконайте:

sudo service cron start

Тепер cron потрібно увімкнути, щоб він запускався щоразу, коли система перезавантажується:

sudo service cron enable

Готово!

Спосіб 2. Перевірте логи cron 

Щоб впевнитися, що cron працює належним чином, перевірте файли логування. Вони зберігаються в каталозі /var/log/syslog.

* syslog — це протокол, який системи Linux використовують для централізації логів даних подій. Вони потрібні для аудиту, моніторингу, усунення несправностей, звітування та інших необхідних завдань операційної команди.

Переглянути логи завдань cron у файлі syslog можна за допомогою:

grep CRON /var/log/syslog

В результаті маєте отримати таке виведення, щоб переконатися, що cron працює правильно, а його логи зберігаються там, де потрібно: 

Але є нюанс: тека syslog зберігає й інші системні логи. Тож перевірити лише ті, що пов’язані із cron, може бути проблематично. Щоб вирішити це, можете створити окремий лог файл, що містить лише записи cron з файлу syslog.

Для цього відкрийте наступний файл за допомогою редактора nano:

nano /etc/rsyslog.d/50-default.conf

Знайдіть рядок, який починається з #cron.*

Розкоментуйте цей рядок — видаліть #. Збережіть та вийдіть з файлу за допомогою Ctrl+X, потім натисніть Y та Enter.

Перезапустіть сервіс rsyslog за допомогою команди:

sudo service rsyslog restart

Тепер ви отримуватимете логи у файлі cron.log, розташованому в каталозі /var/log.

Якщо термінал не видає жодних логів, це означає, що cron необхідно запустити. 

Спосіб 3: Запустіть завдання cron

Перевірити чи працює cron можна також за допомогою тестового завдання. Якщо служба успішно його виконує, це означає, що вона працює правильно. 

Спершу необхідно створити сценарій Bash. З ним ви можете автоматизувати щоденні завдання у Linux.

Спробуймо створити завдання, яке виводитиме «мій cronjob працює!» у файл .txt. Знайдіть поточну робочу директорію за допомогою команди: 

pwd

Створіть файл у цій теці:

touch file.txt

Потім створіть файл Bash за допомогою nano:

nano script.sh

Додайте до файлу такий текст:

#! /usr/bin/bash
echo "my cronjob is working!" >> /home/username/file.txt

Переконайтеся, що правильно вказали розташування текстового файлу, який ви створили. Збережіть і вийдіть із файлу: натисніть Ctrl+X, потім Y та Enter.

Надайте дозволи на виконання сценарію Bash:

chmod +x script.sh

Тепер створіть завдання cron, щоб виконати сценарій. Відкрийте файл crontab:

crontab -e

Введіть такий рядок у кінці файлу:

* * * * * /path/to/script.sh

Зірочки означають час виконання завдання. Перша позначає хвилини, друга — години, третя — день, потім місяць та рік.

У файлі також необхідно вказати ім’я виконуваного файлу та шлях до нього.

Збережіть та закрийте файл. На терміналі ви побачите, що встановили нове завдання:  «crontab: installing new crontab».

Щоб перевірити, чи це спрацювало, перейдіть до каталогу file.txt і надрукуйте його вміст на терміналі за допомогою cat:

cat file.txt

Таке виведення означає, що cron працює нормально.

Спосіб 4. Перевірте запущені процеси

Перевірити, чи працює демон cron, можна також через список запущених процесів у вашій системі. Для цього виконайте команду ps. У виведенні маєте побачити crond.

ps -ef | grep crond

Це означає, що все працює належним чином.

Резюмуємо

Утиліта cron — одна з найважливіших у Linux. Якщо грамотно її використовувати, ваша система буде ефективнішою. Проте вам потрібно іноді перевіряти чи правильно працює ця утиліта. Особливо під час усунення системних проблем.

Ми розглянули 4 способи, як це можна зробити: обирайте зручніший для вас або використовуйте одразу декілька. Трішки здорової параної не завадить.

Можете перевірити логи cron або переглянути запущені процеси у системі. Також можна перевірити статус утиліти за допомогою systemctl. Або ж запустіть тестове завдання, що теж покаже, чи працює служба.

Правильна робота служби cron дозволяє автоматизувати та планувати щоденні системні завдання. Це покращує загальну продуктивність системи та підтримує її працездатність.

А курси з Linux від ITEDU допомагають відкрити нові кар’єрні горизонти. Сертифікат про успішне навчання свідчитиме про ваші навички та готовність до справжніх проєктів 😉

Радимо розглянути «Адміністрування Linux для новачків» та «Адміністрування Linux. Базовий рівень». Або обирайте інший курс під свій рівень.

Залишити відповідь

Дякуємо, що поділились