표준 및 오류 출력을 리디렉션하여 파일을 첨부하고 잘린 결과를 이메일로 보냅니다.

표준 및 오류 출력을 리디렉션하여 파일을 첨부하고 잘린 결과를 이메일로 보냅니다.

다음과 같은 crontab이 있습니다.

 0 8 * * * command >> mylog.log 2>&1

그러면 오류와 표준 출력이 mylog.log에 추가됩니다.

위의 내용 외에도 최신 출력만 캡처하여 다음 command을 통해 내 이메일로 보낼 수 있기를 바랍니다.

 mail -s 'test' [email protected]

즉, 모든 출력을 로그에 기록하고 새 출력만 이메일로 보냅니다.

티셔츠를 읽었는데 이것이 답일 수도 있다는 내용이 나와 있지만 100% 확신할 수는 없습니다.

답변1

동료들과 확인한 결과 해결책은 매우 간단했습니다. 스크립트를 여러 부분으로 나누세요. 이러한 부분을 쉘 스크립트에 넣으십시오.

 #!/bin/sh
 # write truncated log to temp.log 
 command > temp.log 2>&1
 # mail contents of truncated log
 mail -s 'test' [email protected] < temp.log
 # append contents of truncated log to your primary log
 cat temp.log >> mylog.log

그런 다음 bash 스크립트를 가져와 crontab에서 실행하십시오.

 0 8 * * * bash mysh.sh
 

관련 정보