cronjob의 일부로 다음 명령이 있습니다. cron이나 명령줄을 통해 명령을 실행하면 Null message body; hope that's ok
.
이메일의 내용은 비어 있지만 파일을 확인해보니 /tmp/sdplogs.out
내용이 포함되어 있습니다.
스크립트는 /dproxy/scripts/cleanSDP2xLogs.sh
출력을 파일로 보냅니다 /tmp/sdplogs.out
.
내가 뭘 잘못했나요? 어떤 도움이라도 대단히 감사하겠습니다.
$ /dproxy/scripts/cleanSDP2xLogs.sh | mail -s 'SDP2.X Prod LogArchiving Report' [email protected] < /tmp/sdplogs.out
Null message body; hope that's ok
답변1
스크립트에서 데이터를 stdout으로 |
출력 하거나 .&&
|
&&
를 사용하면 mail
스크립트가 0으로 종료되는 경우에만 명령이 실행됩니다.
파이프 문자를 사용할 때 스크립트는 파이프가 데이터를 mail
.
작성한 내용에서 스크립트는 파일에 데이터를 쓰고 mail
파일에서 읽습니다 .평행하게-- mail
스크립트가 무엇이든 쓰기 전에 궁극적으로 파일을 읽습니다.
답변2
/dproxy/scripts/cleanSDP2xLogs.sh | mail -s 'SDP2.X Prod LogArchiving Report' [email protected] < /tmp/sdplogs.out
당신은 명령의 출력을 파이핑하고 있습니다 cleanSDP2xLogs.sh
. mail
나는 당신이 의미한 것이 아니라고 생각합니다. cleanSDP2xLogs.sh
먼저 generate /tmp/sdplogs.out을 실행한 다음 /tmp/sdplogs.out을 mail 명령에 입력 하려는 것 같습니다 .
이 경우 다음 |
으로 바꾸십시오 ;
.
/dproxy/scripts/cleanSDP2xLogs.sh; mail -s 'SDP2.X Prod LogArchiving Report' [email protected] < /tmp/sdplogs.out
답변3
첨부 파일로 사용하는 또 다른 방법 -a
:
/dproxy/scripts/cleanSDP2xLogs.sh
mail -s 'SDP2.X Prod LogArchiving Report' -a /tmp/sdplogs.out [email protected] << ""