Eu investiguei a origem de como o cron lida com o envio da saída de seus trabalhos:
-
cron(8)
configura stdout e stderr da tarefa em execução e canaliza diretamente paramail(1)
, não deixando nenhum arquivo temporário. Procure emdo_command.c
na linha 411 ( 1 ). -
mail(1)
precisa estar totalmente pronto, já que precisa dos cabeçalhos. Ele abre um arquivo temporário (geralmente/tmp/mail-R…
), mas o remove imediatamente, para não deixar vestígios. Loøk emcollect.c
na linha 83 ( 2 ).
Em qualquer caso, parece haver esforço deliberado não para deixar um arquivo temporário interceptável por aí. Se você precisar (ou quiser) interceptar o que está acontecendo em um cronjob de longa duração, você mesmo precisará configurar um arquivo temporário.
A minha sugestão neste momento é, p. Adicione tee $HOME/cronjob.out
ao seu cronjob, que captura uma cópia da saída do seu trabalho em um local seguro.