Corpo da mensagem nulo; espero que esteja bem

2

Eu tenho o seguinte comando abaixo como parte de um cronjob. Quando executo o comando via cron ou na linha de comando, recebo Null message body; hope that's ok .

O conteúdo do email está vazio, mas quando eu verifico o arquivo /tmp/sdplogs.out , ele tem conteúdo.

O script /dproxy/scripts/cleanSDP2xLogs.sh envia a saída para o arquivo /tmp/sdplogs.out .

O que estou fazendo de errado? Qualquer ajuda seria muito apreciada.

$ /dproxy/scripts/cleanSDP2xLogs.sh | mail -s 'SDP2.X Prod LogArchiving Report' [email protected] < /tmp/sdplogs.out
Null message body; hope that's ok
    
por Sandip 15.10.2014 / 17:50

2 respostas

7

Você precisa substituir o | por && ou deixar o script gerar os dados para o stdout e usar | .

Ao usar && , o comando mail só será executado quando o script sair com 0.

Ao usar o caractere pipe, seu script precisa enviar os dados para o stdout para que o pipe possa passá-lo para mail .

No que você escreveu, o script grava dados no arquivo e mail lê o arquivo em paralelo - e mail acaba lendo o arquivo antes que o script tenha escrito alguma coisa nele .

    
por 15.10.2014 / 18:00
0

"/ dproxy / scripts / cleanSDP2xLogs.sh | mail -s 'SDP2.X Prod LogArquiving Report' [email protected] < /tmp/sdplogs.out"

você está enviando a saída do cleanSDP2xLogs.sh para o comando mail, o que eu acho que não é o que você quer dizer. Parece que você deseja primeiro executar cleanSDP2xLogs.sh para gerar /tmp/sdplogs.out e, em seguida, alimentar /tmp/sdplogs.out no comando mail.

Se for esse o caso, basta substituir | com; e você deve estar bem: /dproxy/scripts/cleanSDP2xLogs.sh; mail -s 'SDP2.X Prod LogArchiving Report' [email protected] < /tmp/sdplogs.out

    
por 21.02.2018 / 17:42