複数のcronジョブがあり、そのうちの1つは1分ごとに実行されます。特定のcronジョブでエラーが発生したため、2時間ウェブサイトを終了する必要があり、その2時間の間にウェブサイトのアップグレードが完了するまで約120通の電子メールが届きました。
今、私は寝ていますが、何が起こったとしましょう。 cronジョブは1分ごとに実行され失敗するため、何百、何千もの電子メールが必要ない。電子メールの送信頻度を制限し、1分に1回実行する方法はありますか?
PS:私たちはsmtpサーバーがなく、サードパーティを使用しているので、スパムとしてマークまたは無効になっていないことを嬉しく思います。
答え1
cronjob/monitoring サービスが中断/スケジュールされたメンテナンスを認識できるようにするいくつかのメカニズムが必要です。最近、Nagios、Zabbixなどの多くのプログラムは、スケジュールされたメンテナンスを実行し、インターフェースを介してNagiosにこれを通知するソリューションを提供しています。この期間中、Nagiosはサービスの監視を試みません。
あるいは、より簡単には、単一の単純なサービス監視サービスに重いNagiosを使用することを膨らませるのではなく、cronjobスクリプトにいくつかのファイルロックメカニズムを知らせてください。出力を叫んでください。 cronjobスクリプトがシステム監視を再開できるように、スケジュールされたメンテナンス後にファイルロックが削除されたことを確認するのは管理者の責任です。
答え2
デフォルトでは、cronはcronジョブによって生成されたすべての出力をstdoutまたはstderrに電子メールで送信します。
個人的には、私はすべての出力をログファイルにリダイレクトし、ファイル名の一部として実行日のスタンプを含めます。
通知を受け取らない場合は、同じ操作を行い、別のクローン操作を使用してN時間ごとにメールを送信してください。