Cron – це інструмент для планування задач, який є стандартним компонентом Linux та інших Unix-подібних операційних систем. Він ідеально підходить для автоматизації регулярних процесів.
Для того, щоб cron працював безперебійно, важливо періодично перевіряти його працездатність. Існує чотири основні способи зробити це: перевірка статусу служби cron, аналіз лог-файлів cron, запуск тестової задачі та відстеження запущених процесів.
Що таке Cron?
Cron – це фоновий процес, що автоматизує виконання системних задач за розкладом. Системні адміністратори використовують cron для планування таких дій, як виконання команд або скриптів, у визначений час або через певні інтервали.
Cron автоматизує щоденні завдання з обслуговування системи, які необхідно виконувати регулярно.
Існує кілька реалізацій cron для Linux, які можуть відрізнятися залежно від дистрибутива. Vixie cron, розроблений Полом Віксі, є популярною та стандартною версією для Debian і Ubuntu. Arch Linux не використовує жодної версії cron, натомість використовуючи таймери systemd.
Cronie – це відгалуження Vixie cron, яке можна встановити на Arch Linux. Для встановлення використовуйте команду:
sudo pacman -S cronie
Потім запустіть та активуйте службу за допомогою команд:
sudo systemctl start cronie.service
sudo systemctl enable cronie.service
Щоб дізнатися, яка версія cron встановлена у вашій системі, перегляньте сторінку довідки:
man cron
Як перевірити, чи працює cron в Linux
Ось декілька способів перевірити, чи правильно функціонує cron:
1. Перевірка статусу служби cron в Linux
Найпростіший спосіб перевірити роботу cron – це перевірити статус відповідної служби за допомогою команд Linux. Відкрийте термінал (Ctrl + Alt + T) та скористайтеся командою systemctl:
sudo systemctl status cron
Якщо ви бачите вихідні дані, що показують, що служба активна, це означає, що cron працює належним чином.
Якщо ж cron неактивний, ви побачите вихідні дані, схожі на ці:
Щоб запустити службу, виконайте команду:
sudo systemctl start cron.service
Після запуску, активуйте службу, щоб вона автоматично стартувала після кожного перезавантаження системи:
sudo systemctl enable cron.service
2. Перевірка лог-файлів cron в Linux
Інший спосіб переконатися в роботі cron – це перевірка лог-файлів. Журнали cron зазвичай зберігаються в директорії /var/log/syslog.
Syslog – це протокол, який використовують Linux-системи для централізованого ведення журналів подій. Ці журнали використовуються для аудиту, моніторингу, діагностики, звітності та інших адміністративних завдань.
Для перегляду журналів cron у файлі syslog скористайтеся командою:
grep 'cron' /var/log/syslog
Ви отримаєте результат, який показує, що cron працює, а його записи зберігаються в журналі:
Оскільки syslog містить різні системні журнали, може бути важко відфільтрувати лише записи cron. Для спрощення цього процесу можна створити окремий лог-файл, який міститиме лише записи cron.
У цьому прикладі використовуємо текстовий редактор nano, але ви можете використовувати будь-який інший редактор на ваш вибір.
Відкрийте файл конфігурації rsyslog:
nano /etc/rsyslog.d/50-default.conf
Знайдіть рядок, що починається з:
#cron.*
Розкоментуйте його, видаливши символ решітки (#). Збережіть зміни (Ctrl+X, потім Y та Enter).
Перезапустіть службу rsyslog:
sudo service rsyslog restart
Тепер записи cron будуть зберігатися у файлі cron.log в директорії /var/log.
Якщо термінал не може отримати доступ до журналів, це може означати, що cron не працює. У такому випадку, переконайтеся, що cron запущений, або перевірте іншими методами.
3. Запуск задачі cron в Linux
Ви також можете перевірити cron, створивши тестову задачу та запустивши її. Якщо задача виконається успішно, це означає, що cron працює правильно.
Спочатку потрібно створити скрипт Bash. Скрипти Bash дозволяють автоматизувати повсякденні завдання в Linux.
Створимо скрипт Bash, який запише “мій cronjob працює!” у текстовий файл. Для початку, визначте поточну робочу директорію:
pwd
Створіть файл у цій директорії:
touch file.txt
Потім створіть скрипт Bash:
nano script.sh
Додайте до файлу наступний вміст:
#! /usr/bin/bash
echo "my cronjob is working!" >> /home/username/file.txt
Переконайтеся, що шлях до текстового файлу вказано правильно. Збережіть файл (Ctrl + X, потім Y і Enter).
Надайте скрипту дозволи на виконання:
chmod +x script.sh
Тепер створіть задачу cron для виконання скрипту. Відкрийте crontab:
crontab -e
Додайте в кінець файлу рядок:
* * * * * /path/to/script.sh
П’ять зірочок визначають час виконання задачі. Перша – хвилини (0-59), друга – години (у 24-годинному форматі), третя – день місяця (1-31), четверта – місяць (1-12), а остання – день тижня (0-7, 0 та 7 – неділя).
Шлях до виконуваного файлу також вказується у файлі.
Після збереження файлу ви побачите повідомлення “crontab: встановлення нового crontab”.
Щоб перевірити, чи спрацювала задача cron, перейдіть до каталогу з файлом file.txt та виведіть його вміст на термінал за допомогою команди cat:
cat file.txt
Якщо в файлі з’явився текст “my cronjob is working!”, це означає, що cron працює належним чином.
4. Перевірка запущених процесів в Linux
Ще один спосіб переконатися, що демон cron працює, це переглянути список запущених процесів. Скористайтеся командою ps. Процес cron буде відображений як crond.
ps aux | grep cron
Цей результат підтверджує, що процес cron запущений у вашій системі Linux.
Автоматизація та планування системних задач за допомогою cron
Cron – це важливий інструмент для Linux, який забезпечує ефективну роботу системи. Іноді виникає необхідність перевірити його роботу під час вирішення системних проблем.
Для цього можна скористатися різними способами: перевірити лог-файли, переглянути запущені процеси, перевірити статус служби за допомогою systemctl або запустити тестову задачу.
Правильна робота cron дозволяє автоматизувати та планувати регулярні системні завдання. Більшість завдань cron створюються автоматично встановленими програмами. Автоматизація покращує загальну продуктивність системи та підтримує її стабільність.