Как посмотреть логи cron
Перейти к содержимому

Как посмотреть логи cron

Где находится журнал cron / crontab?

Я хочу убедиться, что моя работа cron выполняется и в какое время. Я считаю, что есть журнал для моей sudo crontab -e работы, но где?

Я искал в Google и нашел рекомендации для поиска /var/log (в котором я ничего не вижу с «cron» в названии) и для редактирования файла, /etc/syslog.conf которого у меня тоже нет.

При установке по умолчанию задания cron регистрируются в

Вы можете увидеть только задания cron в этом лог-файле, запустив

Если вы ничего не перенастроили, записи будут там.

Вы можете создать файл cron.log, содержащий только записи CRON, которые отображаются в системном журнале. Обратите внимание, что задания CRON по-прежнему будут отображаться в системном журнале, если вы будете следовать следующим указаниям.

Найдите строку, которая начинается с:

раскомментируйте эту строку, сохраните файл и перезапустите rsyslog:

Теперь вы должны увидеть файл журнала cron:

Активность Cron теперь будет регистрироваться в этом файле (в дополнение к syslog).

Обратите внимание, что в cron.log вы увидите записи о том, когда cron запускал скрипты в /etc/cron.hourly, cron.daily и т. Д. — например, что-то вроде:

Однако вы не увидите больше информации о том, какие сценарии фактически выполнялись внутри /etc/cron.daily или /etc/cron.hourly, если только эти сценарии не направляют вывод в cron.log (или, возможно, в какой-либо другой файл журнала).

Если вы хотите проверить, работает ли crontab и не нужно искать его в cron.log или syslog, создайте crontab, который перенаправляет вывод в файл журнала по вашему выбору — что-то вроде:

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

Выполнение заданий через CRON в Linux

Admin 18.05.2017 , обновлено: 28.05.2022 Bash, CentOS, Linux, VPS

CRON – это планировщик заданий в Linux, который запускает выполнение скриптов по заданному расписанию.

Пример CRON задания

Добавление задания в CRON

В операционной системе Cent OS (Linux) файл, отвечающий за выполнение заданий, лежит по такому пути: /etc/crontab.

Для редактирования общего крона на сервере вводим консольную команду:

Для альтернативного внесения в cron — для каждого отдельного пользователя — смотрите ниже.

Исполняемые файлы имеют расширение sh. В начале файла принято записывать:

Как просмотреть логи в CRON

Если добавленное в CRON задание не выполняется, можно проверить ошибки в логах.

Скрипт лежит в папке my_scripts и называется backup_webdav_day.sh. Для просмотра логов CRON

По умолчанию он имеет такой вид:

Команда означает, что скрипт будет запускаться в 2 часа каждую ночь.

Предположим, что выполнение команды не работает, нам нужно понять, почему так происходит. Изменяем в файле backup_webdav_day.sh данные скрипта, чтобы тот записывал ход выполнения работы в специальный лог файл, который будет создан в той же директории. И меняем время на ближайшее, допустим сейчас 16.00 и мы хотим узнать, будет ли работать скрипт. Тогда делаем его выполнение через 5 минут.

Ждём пока не наступит 16.05, а затем смотрим что показывает файл backup_webdav_day.log.

CRON отказано в доступе / Permission denied

Если скрипт не будет выполняться, то в логах файла вы увидите соответствующую ошибку. Например, в ошибке может находиться такая информация:

Это означает, что в операционной системе Linux, нет прав доступа к файлу. В этом случае файлу backup_webdav_day.sh присваиваем права доступа на исполнение – chmod +x:

После этого данная ошибка должна исчезнуть.

Альтернативное изменение cron в Ubuntu

Иногда изменение файла /etc/crontab напрямую не даёт результата.

Также этот способ добавления заданий в cron считается более надёжным. Задания добавляются конкретному пользователю.

Where cron logs are stored on your server

The cron daemon does it’s work in the background, reading crontab files and running jobs on schedule, and the logs it writes are helpful for debugging and auditing your cron jobs. Most versions of cron will log when jobs run and whether there are any errors with your crontab. They do not log cron job output or exit statuses. (For that, use Cronitor).

Stop searching for logs

Finding cron logs on Ubuntu and Debian

On Ubuntu, Debian and related distributions, you will find cron jobs logs in /var/log/syslog . Your Syslog contains entries from many operating system components and it’s helpful to grep to isolate cron-specific messages.

You will likely require root/sudo privileges to access your Syslog.

Finding cron logs on CentOS and Redhat

On CentOS, Redhat and Amazon Linux cron logs are written to /var/log/cron .

You will likely require root/sudo privileges to access your cron logs.

Deciphering your cron job logs

Cron logs store the time the job was started, the user account used, and the command run. In this example, a data-pipeline.py cron job ran on March 29th, on the data-processing host as the dataproc user.

As valuable as cron logs are they can’t tell you what cron jobs didn’t run. Monitor your cron jobs with Cronitor to easily collect output, capture errors and alert you when something goes wrong. Learn about cron monitoring.

Related Guides

Configuring cron with environment variables

The 5 places cron jobs are saved

List all cron jobs for all users

What to do when your cron job is not working

What is the cron job working directory

Cronitor automatically finds and monitors cron jobs. Complete your setup in minutes.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *