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

550

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

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

    
задан Scott Szretter 11.08.2011 в 14:06
источник

6 ответов

650

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

/var/log/syslog

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

 grep CRON /var/log/syslog

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

    
ответ дан Richard Holloway 12.08.2011 в 12:58
179

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

Откройте файл

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

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

#cron.*

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

sudo service rsyslog restart

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

/var/log/cron.log

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

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

Apr 12 14:17:01 cd CRON[14368]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

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

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

01 14 * * * /home/joe/myscript >> /home/log/myscript.log 2>&1

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

ответ дан user12345 13.04.2012 в 03:36
59

Иногда бывает полезно постоянно следить за ним, в этом случае:

tail -f /var/log/syslog | grep CRON
    
ответ дан KennyCason 14.05.2013 в 09:34
19

Вы также можете направлять вывод отдельных cronjobs в свои собственные журналы для лучшей читаемости, вам просто нужно будет добавлять выходные данные где-нибудь.

 0 15 * * *    /home/andrew/daily-backup.sh >> /var/log/daily-backup.log 2>&1
    
ответ дан Andrew Meyer 01.04.2015 в 17:26
4

Это очень старый вопрос, но ни один из этих ответов не кажется удовлетворительным.

Сначала запустите каждое задание cron каждую минуту, затем запустите cron как не-daemon (временно, просто убейте любой сард, который, возможно, уже был запущен) с протоколом тестирования:

crond -nx test

И посмотрите журнал выполнения вашей программы, протекающий через ваш терминал.

    
ответ дан Tristan Maat 17.06.2016 в 19:42
1

По умолчанию это /var/log/syslog .

Но он может быть настроен для создания отдельного cron.log, что более полезно.

Этот Q & amp; A описывает процесс:

16.04: Как сделать cron create cron.log и контролировать его в режиме реального времени?

Также в этом ответе приведены инструкции по созданию команды wcron , которая отображает ее почти в режиме реального времени. Кроме того, он ссылается на другой ответ,

Как изменить уровень журнала cron?

, который показывает, как изменить уровень журнала, чтобы включить больше, чем просто начало заданий - уровень 15 также покажет ошибки и время окончания.

    
ответ дан SDsolar 22.10.2017 в 08:40