Я хочу перевірити, чи виконується моє cron завдання і в який час. Я вважаю, що існує журнал для моїх завдань "sudo crontab -e", але де?
Я шукав в гуглі і знайшов рекомендації подивитися в /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