Вопрос Где журнал cron / crontab?


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

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


613
2017-08-11 12:06


происхождения




ответы:


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

/var/log/syslog

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

 grep CRON /var/log/syslog

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


722
2017-08-12 10:58



Если MTA не установлен, cron просто удаляет выход задания. - Barry Kelly
Журнал cron может находиться в другом файле в /var/log/ каталог. Проверьте cron.log или эквивалент. - Navigatron
это не дает мне результат работы. он просто дает общее сообщение о том, что cron был обработан. - chovy
на AWS это было / var / log / cron - tsukimi
@shadi, вы также можете grep -i CRON искать нечувствительность к регистру - nafg


Вы можете создать файл 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

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


197
2018-04-13 01:36



По моему мнению, этот ответ лучше в будущем. Таким образом, ваш файл syslog более ясен. - shgnInc
Чтобы исключить журнал cron из syslog, вы можете изменить строку *.*;auth,authpriv.none -/var/log/syslog в *.*;auth,authpriv.none,cron.none -/var/log/syslog, - Koen.
На нашем CentOS 6, cron. *, Определенном в /etc/rsyslog.conf, тогда как я пуст в папке rsyslog.d. - Scott Chu
что 2>&1 стоять? - John Joe
@JohnJoe 2> & 1 используется для пересылки stderr в stdout, таким образом вы также получите stderr для файла журнала. - Sampo Sarrala


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

tail -f /var/log/syslog | grep CRON

67
2018-05-14 07:34



Ну, вы, вероятно, захотите использовать -F, который будет следовать за файлом через изменение имени, так что когда он будет усечен / перемещен, например, /var/log/syslog.1.gz, вы по-прежнему выполняете текущую /var/log/syslog файл. Для человека документы, это то же самое, что работает tail xxxx -f --retry - Momer


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

 0 15 * * *    /home/andrew/daily-backup.sh >> /var/log/daily-backup.log 2>&1

24
2018-04-01 15:26



true, но если эта строка не запускается из-за синтаксической ошибки, в указанном выходном журнале ничего не будет записано. - Raptor
Вы можете решить эту проблему, добавив 2> & 1 после того, как указан файл журнала. Рекомендуется также проверять свои cronjob перед добавлением их в crontab, а затем присутствовать при первом запланированном прогоне, чтобы гарантировать, что crontab правильно отформатирован. - Andrew Meyer


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

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

crond -nx test

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


7
2018-06-17 17:42



Не работает 14.04 - No command 'crond' found, did you mean: Command 'cron' from package 'cron' (main) - G-.


Он находится в /var/log/syslog по умолчанию.

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

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

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

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

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

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


5
2017-10-22 06:40





Вы можете перенаправить вывод cron в файл tmp

Такие как: 00 11 07 * * / bin / bash /home/ubuntu/command.sh> / tmp / output 2> & 1

Ошибка и нормальный выход, оба будут перенаправлены в тот же файл


1
2018-05-07 11:27