Я хочу проверить, выполняется ли мое задание cron и в какое время. Я полагаю, что существует журнал для моих заданий sudo crontab -e
, но где?
Я искал в Google и нашел рекомендации искать в /var/log
(в котором я не вижу ничего с "cron" в имени) и редактировать файл /etc/syslog.conf
, которого у меня тоже нет.
При установке по умолчанию задания cron регистрируются по адресу
/var/log/syslog
Вы можете увидеть все задания cron в этом журнале, выполнив следующие действия
grep CRON /var/log/syslog
Если вы ничего не переконфигурировали, записи будут там.
Вы можете создать файл 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 (или, возможно, в какой-либо другой файл журнала).
Если вы хотите проверить, запущен ли кронтаб, и не искать его в cron.log или syslog, создайте кронтаб, который перенаправляет вывод в выбранный вами файл журнала - что-то вроде:
01 14 * * * /home/joe/myscript >> /home/log/myscript.log 2>&1
Это перенаправит весь стандартный вывод и ошибки, которые может выдать запущенный скрипт, в указанный файл журнала.
Иногда может быть полезно постоянно контролировать его, в таком случае:
tail -f /var/log/syslog | grep CRON
Вы также можете направить вывод на отдельные задачи cron на свои собственные журналы для лучшей читаемости, вам просто нужно добавить вывод даты где-то.
0 15 * * * /home/andrew/daily-backup.sh >> /var/log/daily-backup.log 2>&1
Это очень старый вопрос, но ни один из этих ответов, кажется удовлетворительным.
Сначала сделать задание cron запуск каждую минуту, а затем запустить хрон как недемона (временно, просто убить любого crond, что может уже начали) с тест входа:
crond -в NX тест
И просмотр журнала выполнения программы, протекающей через ваш терминал.
Он находится в каталоге/var/журнал/системного журнала по умолчанию.
Но он может быть настроен, чтобы создать отдельный хрон.журнал, который является более полезным.
Этот Q&a описывает процесс:
Также в этом ответе есть инструкции по созданию команды wcron`, которая отображает его в режиме почти реального времени. Плюс, это ссылки на другой ответ,
https://askubuntu.com/questions/949996/how-to-change-cron-log-level/
что показывает, как изменить уровень ведения журнала, чтобы включить больше, чем просто начало работы - 15 уровень будет показывать ошибок и окончания времени, а также.
journalctl -t CROND
Из journalctl` руководство:
-t, --identifier=SYSLOG_IDENTIFIER|PATTERN
Show messages for the specified syslog identifier SYSLOG_IDENTIFIER, or for any of the messages with a "SYSLOG_IDENTIFIER" matched by PATTERN.
This parameter can be specified multiple times.
Как уже упоминалось ранее, хрон рабочих мест регистрируются в в/var/журнал/системный журнал
Вы можете передать syslog на grep и фильтрации хрон журналы, как это
less /var/log/syslog | grep CRON
Вы можете искать через ваши журналы crontab, как это
less /var/log/syslog | grep CRON | grep <search-keyword-comes-here>
Вы можете искать через ваши журналы кронтаб истории, хранящейся в GZ файлы, как это
less /var/log/syslog.2.gz | grep CRON | grep <search-keyword-comes-here>
Его всегда считали хорошим, чтобы иметь механизм сбора данных, вы можете быстро настроить лось для вашего сервера, вы также можете поэкспериментировать с logz .