Я хочу проверить, что мое задание крона выполняется и в какое время. Я полагаю, что существует журнал для моего sudo crontab -e
задания, но где?
Я искал Google и нашел рекомендации заглянуть /var/log
(в котором я ничего не вижу с 'кроном' на имя) и отредактировать файл /etc/syslog.conf
который я также не имею.
На стандартной установке задания крона зарегистрированы к
/var/log/syslog
Вы видите просто задания крона в том файле журнала путем выполнения
grep CRON /var/log/syslog
Если Вы ничего не реконфигурировали, записи будут там.
Можно создать файл cron.log для содержания просто записей КРОНА, которые обнаруживаются в системном журнале. Обратите внимание, что задания КРОНА все еще обнаружатся в системном журнале, если Вы будете следовать за следующими направлениями.
Откройте файл
/etc/rsyslog.d/50-default.conf
Найдите строку, которая запускается с:
#cron.*
не прокомментируйте, что строка, сохраните файл и перезапустите rsyslog:
sudo service rsyslog restart
Необходимо теперь видеть файл журнала крона здесь:
/var/log/cron.log
Действие крона будет теперь зарегистрировано в этот файл (в дополнение к системному журналу).
Обратите внимание в cron.log наблюдение записей для того, когда крон запустил скрипты в/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 или системном журнале, создать crontab, который перенаправляет вывод к файлу журнала по Вашему выбору - что-то как:
01 14 * * * /home/joe/myscript >> /home/log/myscript.log 2>&1
Это перенаправит весь стандартный вывод и ошибки, которые могут быть произведены скриптом, который запущен к указанному файлу журнала.
Иногда может быть полезно непрерывно контролировать его в этом случае:
tail -f /var/log/syslog | grep CRON
Можно также направить вывод отдельного cronjobs к их собственным журналам для лучшей удобочитаемости, необходимо будет просто добавить вывод даты где-нибудь.
0 15 * * * /home/andrew/daily-backup.sh >> /var/log/daily-backup.log 2>&1
Это - очень старый вопрос, но ни один из этих ответов не кажется удовлетворительным.
Сначала делайте свой прогон задания крона каждую минуту, затем выполняйте крон как недемона (временно, просто уничтожьте любой crond, который, возможно, уже запустился) с тестовым входом:
crond -nx test
И посмотрите журнал своего выполнения программы, текущего через Ваш терминал.
Это находится в /var/log/syslog
по умолчанию.
Но это может быть настроено для создания отдельного cron.log, который более полезен.
Это Вопросы и ответы описывает процесс:
16.04: Как я заставляю крон создать cron.log и контролирую его в режиме реального времени?
Также в этом ответе инструкции создать a wcron
управляйте, чтобы отобразился, это - псевдореальное время. Плюс, это связывается с другим ответом,
Как измениться, крон регистрируют уровень?
это показывает, как изменить уровень журнала для включения больше, чем просто запуск заданий - уровень 15 покажет ошибки и время окончания, также.
Вы могли перенаправить производство крона в tmp файл
Такой как: 00 11 07 * */bin/bash/home/ubuntu/command.sh>/tmp/output 2> &1
Ошибка и нормальный вывод, оба будут перенаправлены в тот же файл
Если Вы имеете systemd
установленный в Вашей системе, Вы могли отобразить журнал задания крона при помощи journalctl
команда.
Например, на моей Ubuntu 17.10:
journalctl -u cron.service
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/log/syslog
Можно передать системный журнал по каналу к grep и отфильтровать журналы КРОНА, как это
less /var/log/syslog | grep CRON
Можно перерыть журналы crontab, как это
less /var/log/syslog | grep CRON | grep <search-keyword-comes-here>
Можно перерыть crontab журналы истории, сохраненные в gz файлах, как это
less /var/log/syslog.2.gz | grep CRON | grep <search-keyword-comes-here>
Его всегда продуманная польза, чтобы иметь регистрирующийся механизм, можно быстро установить ЛОСЯ для серверов, можно также экспериментировать с logz.
Проверьте все журналы, связанные с CRON, в файлах системного журнала, включая сжатые файлы журналов, следующим образом:
zless /var/log/syslog* | grep CRON
Может отличаться в зависимости от типа и версии системы. Но во многих случаях вам нужно выяснить временную основу, на которой работает целевое правило crontab. Так, например, если вы ищете связанный журнал для ежедневного правила crontab, вы найдете журнал, разделенный на разные файлы, по одному на день, в:
$ ls -ltrh /var/log/cron-*
И вы получите файлы журналов.
В Ubuntu 20.04 /var/mail/{user}
содержал сообщения cron, которые я искал.
Я не смог найти приличные журналы cron в /var/log/messages
.
Я нашел текущие журналы cron в /var/log /хрон
и предыдущие журналы в /var/log/cron-date
.