Как пользователь Linux, вы, вероятно, уже знакомы с crontab.
Вы можете автоматизировать задачи, запуская команды и скрипты по заданному расписанию.
Хотите автоматически создавать резервные копии?
Crontab – вам в этом поможет.
Здесь я не буду углубляться в использование crontab.
Я сосредоточусь на том, чтобы показать вам различные способы проверки логов crontab.
Это поможет выяснить, выполнились ли ваши cronjobs по расписанию или нет.
Метод 1: Проверим syslog на наличие записей crontab
Согласно иерархии каталогов Linux, в каталоге /var/log в Linux хранятся логи системы, служб и запущенных приложений.
Хотя журналы cron также находятся в этом каталоге, стандартного файла для этих журналов не существует. Разные дистрибутивы хранят их в разных файлах.
🐧 Руководство для начинающих по системным логам в системах Linux
В дистрибутивах на базе 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, которая имеет функции, аналогичные протоколированию Syslog.
Просто создайте файл 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
Статус службы должен быть выделен как active (running).
Метод 3: Использование специальных служб, такиъ как Cronitor, для мониторинга заданий cron
Cronitor – это служба, которую можно развернуть для мониторинга любого типа заданий cron.
Многие версии cron начинают вести журнал при выполнении запланированного задания или при возникновении проблем с crontab.
Однако, выход из задания cron или статус его завершения не регистрируется.
Здесь на помощь приходит Cronitor, который работает идеально.
Это комплексное решение для всех ваших потребностей в crontab.
🐧 Обзор средств мониторинга и управления логами с открытым исходным кодом для Linux
Он собирает логи, метрики и статус всех заданий и создает мгновенные предупреждения о сбое или неудачном запуске задания.
Все это можно увидеть через веб-интерфейс.
Для Cronitor или CronitorCLI, установленных на Kubernetes, журналы могут быть записаны в объеме до 100 МБ за одно выполнение.
Другие инструменты и сервисы мониторинга, такие как Better Uptime, также предоставляют возможность автоматического мониторинга заданий cron.
🐧 Как использовать journalctl для анализа логов на Linux
Заключение
Системные журналы очень важны для поиска и диагностики проблем, связанных с системой, и журналы cron не являются исключением.
Syslog хранит журналы, связанные с crontab, однако рекомендуется иметь специальный файл журнала для cron.
Также поможет веб-сервис, например, Cronitor, Better Uptime или Uptime Robot.
см. также:
- 🐧 Как запустить несколько команд в одном задании Cron
- 🐍 Планирование выполнения скриптов Python с помощью Crontab
- ⏲️ Запуск задания cron каждые 12 часов (дважды в день)
- 🐧 Запуск Cron каждые 30 секунд
- ⏲️ Как просмотреть или составить список заданий Cron на Linux
- ☸️ Как создать job Kubernetes из работы cron job
- 😿 Как перечислить задания Cron в Linux