Как проверить журналы Crontab в Linux
Хотите знать, успешно ли завершился cronjob? Перестаньте задаваться вопросом. Просто проверьте журналы cron. Вот кому это сделать.
Как пользователь Linux, вы, вероятно, уже знакомы с crontab. Вы можете автоматизировать задачи, запуская команды и сценарии по заранее заданному расписанию. Хотите автоматически создавать резервные копии? Кронтаб — твой друг.
Я не буду здесь рассматривать использование crontab. Моя цель — показать вам различные способы проверки журналов crontab.
Это помогает выяснить, выполнялись ли ваши задания cron по расписанию или нет.
Способ 1. Проверьте системный журнал на наличие журналов crontab.
Согласно иерархии каталогов Linux, каталог /var/log
в Linux хранит журналы системы, служб и запущенных приложений.
Хотя журналы cron также находятся в этом каталоге, стандартного файла для этих журналов не существует. В разных дистрибутивах они хранятся в разных файлах.
Для дистрибутивов на основе Debian файл /var/log/syslog
содержит журналы выполнения заданий cron, и к нему следует обращаться, если ваши задания cron не работают:
cat /var/log/syslog | grep -w 'cron’
Вы увидите все задания cron, перечисленные на вашем терминале, когда запустите указанную выше команду. Команда grep отфильтрует сообщения, связанные с cron, отдельно от остальных.
Для дистрибутивов на базе RedHat журналы cron имеют специальный файл /var/log/cron
.
В обоих случаях вам, вероятно, потребуется указать ключевое слово sudo
или использовать учетную запись root для доступа к журналам.
Способ 2. Используйте собственный файл журнала (рекомендуется).
Рекомендуется использовать отдельный файл для регистрации заданий cron.
Для этого вы можете настроить «rsyslog» для пересылки журналов cron. Rsyslog — это служба Linux, функции которой аналогичны ведению журнала системного журнала.
Просто создайте файл cron.log
в каталоге /etc/rsyslog.d
:
touch /var/log/cron.log
Теперь откройте файл /etc/rsyslog.d/50-default.conf
для редактирования:
nano /etc/rsyslog.d/50-default.conf
найдите строку, начинающуюся с #cron.*
, и удалите #
в начале строки.
Чтобы изменения сработали, сохраните и закройте этот файл и, наконец, перезапустите службу rsyslog и проверьте ее статус:
sudo systemctl restart rsyslog
sudo systemctl status rsyslog
Статус службы должен быть выделен как активный (работает).
Теперь, когда вам понадобится доступ к журналам crontab, просто прочитайте содержимое этого файла журнала:
less /var/log/cron.log
Способ 3. Используйте специальные службы, такие как Cronitor, отслеживающие задания cron.
Cronitor — это служба, которую можно развернуть для мониторинга любого типа заданий cron.
Многие версии cron начинают ведение журнала при выполнении запланированного задания или при возникновении каких-либо проблем с crontab. Однако выходные данные задания cron или статус его завершения не регистрируются.
Здесь Cronitor пригодится и работает отлично. Это комплексное решение для всех ваших потребностей в crontab. Он собирает журналы, метрики и статус всех заданий и создает мгновенные оповещения о сбоях или неудачных запусках заданий cron.
Все это вы можете увидеть через веб-интерфейс.
Для Cronitor или CronitorCLI, установленных в Kubernetes, журналы могут составлять до 100 МБ за одно выполнение. Здесь вы можете найти подробные инструкции по установке CronitorCLI в Linux.
Другие инструменты и службы мониторинга, такие как Better Uptime, также предоставляют функцию автоматического мониторинга заданий cron.
Заключение
Файлы системных журналов очень важны для устранения неполадок и диагностики проблем, связанных с системой, поэтому журналы cron не являются исключением.
В системном журнале хранятся журналы, связанные с crontab, однако рекомендуется иметь специальный файл журнала для cron. Также помогают такие веб-сервисы, как Cronitor, Better Uptime и Uptime Robot.