2017-02-16 14 views
0

私は、サーバーがアップまたはダウンしているかどうかをチェックするpythonスクリプトを持っています。ダウンしている場合、システムログはほとんどなくメールを送信します。私が欲しいもの5分ごとにcronjobを実行しますが、最初の実行後に停止しましたか?

は、サーバ用に5分ごとにチェックしておくことですので、以下のように、私はcronジョブを置く: */5 * * * * /python/uptime.sh

だから、いつでも、サーバーのダウン、電子メールを送信します。しかし、私は、最初のスクリプトの実行後にスクリプトの実行を停止し(より多くの電子メールを送信する)必要があります。

誰でもこの方法を教えてもらえますか?おかげさまで

+0

スクリプトに条件を入れて、サーバーが起動しているかどうか、または本当にcronジョブを削除するかどうかを確認しようとしましたか? – RageAgainstTheMachine

+0

すべてのスクリプトは、サーバーが稼働中か停止中かをチェックします。私はちょうどスクリプトが(サーバーがダウンした場合)実行する場合、私はサーバーがバックアップするまで電子メールを送信し続ける必要があります、cronジョブに制限を入れたい。代わりに1つの電子メール。 –

答えて

0

単純な解決策は、いくつかのBash env変数MONITORING=trueを設定して、その変数をos.environ["MONITORING"]でチェックするようにPythonスクリプトに任せます。その変数がtrueの場合は、サーバーが起動しているかどうかを確認し、それ以外の場合は何もチェックしないでください。サーバーダウンが見つかったら、その変数をos.environ["MONITORING"] = falseのようにスクリプトからfalseに設定します。そのため、env変数を再び設定するまでメールは送信されませんtrue。 mailtrigger.pyが実行されている場合、サーバーがダウンし、チェックしたら無限ループでシェルから-nohup mailtrigger.py

  • 実行し、それ:

  • 0
    • は永遠に走る空While Trueスクリプト(「mailtrigger.py」EX)を書き込みますmailtrigger.pyが実行されていないことから、その その後、終了していないmailtrigger.py(kill process id

    場合はあなたの次の反復がメールを送信しません。

    関連する問題