Para onde vão os trabalhos `at` e` cron`?

9

Para onde vão a saída padrão ate as crontarefas, dado que não há tela para exibição?

Não está aparecendo no diretório em que os trabalhos foram iniciados, nem no meu diretório pessoal.

Como eu realmente consegui descobrir isso, pois não sei como depurar ou rastrear um trabalho em segundo plano?

Michael Durrant
fonte
A saída geralmente é enviada por email.
donothingsuccessfully
Eu recomendo usar o mutt ", um cliente de email baseado em texto pequeno, mas muito poderoso", para ler a saída. Está presente nos repositórios de todas as distribuições que usei.
Kwarrick

Respostas:

10

Na página do manual cron:

Ao executar comandos, qualquer saída é enviada para o proprietário do crontab (ou para o usuário nomeado na variável de ambiente MAILTO no crontab, se houver). As cópias filhas do cron executando esses processos têm seu nome forçado a maiúsculas, como será visto na saída syslog e ps.

Portanto, você deve verificar o correio do seu / root ou o syslog (por exemplo, / var / log / syslog).

Jari Laamanen
fonte
No meu mac, depois de simplesmente chamar "cron", ele exibia o caminho para o "email". No meu caso, era / var / mail / <nome de usuário>.
Cédric Guillemette
4

Para processos de longa execução, às vezes é útil saber qual é a saída antes de você receber o email, eu uso isso:

  1. Use pspara encontrar o ID do processo do seu programa em execução ( PID abaixo);
  2. use lsofpara encontrar o arquivo no qual a saída está sendo gravada:

    lsof -p PID
    

Na saída, procure as linhas 1ue 2uabaixo do FDcabeçalho da coluna.

Essas linhas informarão em quais arquivos temporários a saída do processo está entrando antes de ser enviada pelo correio. Normalmente, para at, o arquivo está localizado em /var/spool/cron/atjobs/. Por fim, exiba esse arquivo e você encontrará a saída do seu processo (atual).

Gabriel G
fonte
os arquivos abaixo 1ue 2usão do tipo UNIX. Eu estou supondo que estes são soquetes UNIX. Como eu olho para os arquivos agora?
kapad 28/01