Я хочу убедиться, что моя работа cron выполняется и в какое время. Я считаю, что есть журнал для моей sudo crontab -e
работы, но где?
Я искал в Google и нашел рекомендации для поиска /var/log
(в котором я ничего не вижу с «cron» в названии) и для редактирования файла, /etc/syslog.conf
которого у меня тоже нет.
/var/log/
каталоге. Проверьте cron.log или эквивалентный.grep -i 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, который перенаправляет вывод в файл журнала по вашему выбору - что-то вроде:
Это перенаправит все стандартные выходные данные и ошибки, которые могут возникнуть в сценарии, который выполняется, в указанный файл журнала.
источник
*.*;auth,authpriv.none -/var/log/syslog
на*.*;auth,authpriv.none,cron.none -/var/log/syslog
.2>&1
означает?Иногда может быть полезно постоянно следить за этим, в этом случае:
источник
-F
, который будет следовать за файлом при смене имени, так что, когда он будет усечен / перемещен, например/var/log/syslog.1.gz
, вы все еще будете следовать текущему/var/log/syslog
файлу. Поtail xxxx -f --retry
Вы также можете направить вывод отдельных cronjobs в их собственные журналы для лучшей читаемости, вам просто нужно где-то добавить вывод даты.
источник
Если вы
systemd
установили в своей системе, вы можете отобразить журнал заданий cron с помощьюjournalctl
команды.Например, на моем Ubuntu 17.10:
источник
Это очень старый вопрос, но ни один из этих ответов не кажется удовлетворительным.
Сначала заставляйте свою задачу cron запускаться каждую минуту, затем запускайте cron как не-демон (временно, просто убейте любой crond, который, возможно, уже был запущен) с тестовой регистрацией:
crond -nx test
И посмотрите журнал выполнения вашей программы, проходящий через ваш терминал.
источник
No command 'crond' found, did you mean: Command 'cron' from package 'cron' (main)
Это
/var/log/syslog
по умолчанию.Но его можно настроить для создания отдельного cron.log, что более полезно.
Этот Q & A описывает процесс:
16.04: Как заставить cron создать cron.log и отслеживать его в режиме реального времени?
Также в этом ответе приведены инструкции по созданию
wcron
команды, отображающей ее практически в реальном времени. Плюс, это ссылка на другой ответ,Как изменить уровень журнала cron?
в нем показано, как изменить уровень журнала, включив в него больше, чем просто начало заданий - уровень 15 также покажет ошибки и время окончания.
источник
Fedoar 29 и RHEL 7
Из
journalctl
руководства:источник
Вы можете перенаправить вывод cron в файл tmp
Например: 00 11 07 * * / bin / bash /home/ubuntu/command.sh> / tmp / output 2> & 1
Ошибка и нормальный вывод, оба будут перенаправлены в один и тот же файл
источник
Как упоминалось ранее, задания cron регистрируются в
/var/log/syslog
Вы можете передать системный журнал в grep и отфильтровать журналы CRON, как это
Вы можете искать через ваши журналы crontab, как это
Вы можете искать в журналах истории crontab, хранящихся в файлах gz, например
Всегда полезно иметь механизм регистрации, вы можете быстро настроить ELK для своих серверов, вы также можете поэкспериментировать с logz .
источник