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:

  Как сгенерировать коды двухфакторной аутентификации в Linux с помощью Authenticator

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 в файле системного журнала, выполнив следующую команду:

 grep 'cron' /var/log/syslog 

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

Поскольку папка системного журнала помимо журналов cron содержит и другие системные журналы, может быть немного сложно проверить в файле только журналы, связанные с cron. Эту проблему можно решить, создав отдельный файл журнала, в котором будут храниться только записи cron, которые появляются в файле системного журнала.

  Как использовать зеленый адрес в Linux

В этом примере мы будем использовать редактор nano, но вы можете использовать любой удобный вам редактор.

Откройте следующий файл с помощью 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, который будет печатать «мое задание cron работает!» в файл 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.

  Как играть в Dead Rising 4 в Linux

Дайте разрешения на выполнение скрипту 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 автоматически создаются установленными приложениями. Автоматизация и планирование задач улучшают общую производительность системы и поддерживают ее работоспособность.