다음과 같은 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