2台のサーバーがあります。 1 つは Ubuntu を実行し、もう 1 つは Amazon Linux 2 を実行します。どちらのサーバーも、異なるクライアントに対して一連のクローン操作を実行します。
Ubuntuサーバーは、各クローンジョブの出力を含むEメールをグループのEメールアドレスに送信します。出力リダイレクトなし:エントリごとに1つのコマンドのみを実行します。
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分以上かかる場合は、別のメール送信システムが必要です。