4 способи перевірити, чи працює cron у Linux

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

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

Що таке cron?

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

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

У Linux доступно кілька реалізацій. Версія, яку ви матимете, залежить від вашого дистрибутива. «Vixie cron», названий на честь свого оригінального розробника Пола Віксі, є поширеним і стандартним у Debian і Ubuntu. Arch не має жодної версії cron на користь таймерів systemd.

cronie — це форк Vixie cron, який доступний як стандартний пакет Arch. Щоб встановити його, використовуйте pacman:

 sudo pacman -S cronie 

Потім запустіть і ввімкніть його за допомогою:

 sudo systemctl start cronie.service
sudo systemctl enable cronie.service

Ви можете побачити, яку версію cron встановлено у вашій системі, переглянувши її сторінку довідки:

 man cron 

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

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

1. Перевірте статус служби cron у Linux

Одним із способів перевірити, чи працює cron, є перевірка стану служби cron за допомогою базової команди Linux. Відкрийте термінал Linux, натиснувши Ctrl + Alt + T, і скористайтеся командою systemctl, щоб перевірити стан cron:

 sudo systemctl status cron 

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

Але що, якщо cron знаходиться в неактивному стані, як показано нижче?

Запустити службу можна так:

 sudo systemctl start cron.service 

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

 sudo systemctl enable cron.service 

2. Перевірте журнали cron у Linux

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

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

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

 grep 'cron' /var/log/syslog 

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

Оскільки папка syslog містить інші системні журнали разом із журналами cron, перевірити у файлі лише журнали, пов’язані з cron, може бути трохи складно. Ви можете вирішити це, створивши окремий файл журналу, який зберігає лише записи cron, які відображаються у файлі системного журналу.

У цьому прикладі ми будемо використовувати наноредактор, але ви можете використовувати будь-який редактор, який вам подобається.

Відкрийте наступний файл за допомогою nano:

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

Знайдіть рядок, який починається з:

 #cron.* 

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

Перезапустіть службу rsyslog, виконавши цю команду:

 sudo service rsyslog restart 

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

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

3. Виконання завдання cron у Linux

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

Спочатку вам потрібно створити сценарій Bash. Сценарії Bash дозволяють вам автоматизувати повсякденні завдання в Linux.

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

 pwd 

Створіть файл у поточному каталозі за допомогою команди touch:

 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 

П’ять зірочок відповідають часу виконання, у якому перша зірочка позначає хвилини (0-59), друга – години (у 24-годинному форматі, тобто 13:00 – це 13, опівночі починається о 0), третя зірочка означає день (0-7, 0 і 7 – неділя), четверта вказує на місяць, а остання зірочка вказує на рік.

Ім’я виконуваного файлу та шлях до нього також згадуються у файлі.

Після збереження та закриття файлу ви побачите на терміналі повідомлення «crontab: встановлення нового crontab».

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

 cat file.txt 

Це означає, що cron працює нормально.

4. Перевірте Запущені процеси в Linux

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

 ps aux | grep cron 

Це підтверджує, що процес cron запущено у вашій системі Linux.

Автоматизуйте та плануйте системні завдання за допомогою cron

cron — одна з найважливіших утиліт у Linux, яка дозволяє системі працювати ефективно. Іноді вам потрібно перевірити, чи працює cron під час усунення системних проблем.

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

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