Где cron хранит логи stderr в реальном времени?
У меня есть задание cron для запуска такой команды
some-command 2>&1 >/dev/null | tee -a /tmp/some-command.STDERR.$(date +\%Y-\%m-\%d.\%H.\%M)
Я также получил работу tmpreaper cron, которая приводит в порядок старые журналы. Время от времени процесс теряет самообладание и слишком быстро пожирает все дисковое пространство (я это отлаживаю, но вопрос не в этом). Когда это происходит, кажется, что "тройник" постоянно заклинивает с ошибкой "Нет свободного места на устройстве"; не имеет значения, что tmpreaper в конечном итоге вступает, чтобы освободить место, процесс никогда не восстанавливается.
Единственный момент, когда можно зайти в stderr, - это проверить, что происходит в реальном времени. Однако этот вывод также в конечном итоге появляется в электронном письме, которое cron отправляет после того, как я (неизбежно) убью процесс. Само собой разумеется, что cron имеет свой собственный файл на каком-то другом разделе, который собирает журналы stderr от моего имени. Но я не могу понять, где этот файл. Какие-нибудь советы?
1 ответ
Cron не отправляет вывод из заданий во временный файл. Вместо этого он вызывает почтовую команду, как только видит выходные данные задания, и копирует выходные данные прямо на вход почты. Подтвердил это, проверив источник для Vixie cron, но другие, вероятно, сделают то же самое.