두 대의 서버가 있습니다. 하나는 Ubuntu를 실행하고 다른 하나는 Amazon Linux 2를 실행합니다. 두 서버 모두 서로 다른 클라이언트에 대해 일련의 크론 작업을 실행합니다.
Ubuntu 서버는 각 크론 작업의 출력이 포함된 이메일을 그룹 이메일 주소로 보냅니다. 출력 리디렉션 없음: 항목당 하나의 명령만 실행합니다.
0 2 * * * /apps/ourapp/sync_data -c variable1 -s all -i CLIENT1
...다른 시간에 다른 값으로 반복합니다 -i
. 예정된 시작 시간은 항상 다음 형식을 취합니다.
헤헤:00,헤헤:15또는 헤헤:45.
효과는 만족스러웠습니다. 사람들이 이메일을 받았습니다.
Amazon Linux 시스템에서는 그렇지 않습니다. 메일 로그에는 다음 항목이 있습니다(약간 편집됨).
Feb 28 07:05:04 ip-XXXX sSMTP[32212]: Connection lost in middle of processing
Feb 28 08:05:04 ip-XXXX sSMTP[32382]: killed: timeout on stdin while reading body -- message saved to dead.letter.
Feb 28 08:05:04 ip-XXXX sSMTP[32382]: Timeout on stdin while reading body
Feb 28 21:50:04 ip-XXXX sSMTP[2261]: killed: timeout on stdin while reading body -- message saved to dead.letter.
Feb 28 21:50:04 ip-XXXX sSMTP[2261]: Timeout on stdin while reading body
Feb 28 22:05:04 ip-XXXX sSMTP[2505]: killed: timeout on stdin while reading body -- message saved to dead.letter.
Feb 28 22:05:04 ip-XXXX sSMTP[2505]: Timeout on stdin while reading body
Feb 28 22:20:05 ip-XXXX sSMTP[2845]: killed: timeout on stdin while reading body -- message saved to dead.letter.
Feb 28 22:20:05 ip-XXXX sSMTP[2845]: Timeout on stdin while reading body
타임스탬프의 분 부분이 5분, 15분 또는 45분 표시를 지난 것을 알 수 있습니다. 해당 크론 작업은 다음과 같습니다.아니요이메일을 보내.
dead.letter
항상 비어 있습니다. 이는 작업이 끝나기 전에 로그가 전송되지 않으면 의미가 있습니다(제가 추론한 대로).
내가 읽은 내용 sSMTP
에 따르면 구성 옵션을 사용하여 시간 초과를 무시할 수는 없습니다 stdin
(해당 정보는 오래되었을 수 있음).
그래서 내가 무엇을 할 수 있니? sSMTP
다른 이메일 메커니즘 대신 이를 사용하고 있기 때문인가요 ?
답변1
sSMTP 사용을 고집한다면 할 수 있는 일이 많지 않습니다. 짐작할 수 있듯이 이는 구성할 수 없습니다. 제한 시간은 5분입니다.프로그램 코드에 내장됨. 작업이 5분 이상 소요된다면 다른 메일 제출 시스템이 필요합니다.