
私には無線リピーターがあるのですが、どういうわけか、スリープ モードになるはずがないのに、いつもスリープ モードになってしまうのです。メーカーは、これは欠陥ではないと断言しており、正常に動作するときには問題なく動作します。
継続的に ping すると、ping が続く限り起動したままになり、2 ~ 3 分間 ping がないとスリープ状態になり、起動しなくなることに気付きました。
簡単に言うと、私はオフィスに Linux サーバーを持っていて、サーバーの起動後すぐに IP アドレスに継続的に ping を実行し、サーバーをシャットダウンするまで停止しないようにするコマンドを設定できるかどうか知りたいと思っていました。
これを設定するには何が必要ですか?
ありがとう!
答え1
これは、ping にいくつかの特定のパラメータを指定して cron を使用することで簡単に実現できます。
たとえば /etc/cron.d/ping-my-repeater のような名前のファイルを作成します。内容については、以下のいずれかを選択します。
1 分に 1 回で十分な場合は、次の操作を試してください。
* * * * * root ping -n -c 1 -W 1 $REPEATER_IP_ADDRESS
1 分間に 2 回実行したい場合は、次を試してください。
* * * * * root ping -n -c 2 -i 30 -W 1 $REPEATER_IP_ADDRESS
15 秒ごとに実行したい場合は、次を試してください。
* * * * * root ping -n -c 4 -i 15 -W 1 $REPEATER_IP_ADDRESS
-c
はカウントを指定し、-i
エコー要求間の間隔を秒単位で指定し、-W
各応答を待機する時間を秒単位で指定します。は-n
数値出力のみを示し、特にリモート IP アドレスの逆名前解決を抑制します。 は* * * * *
1 分間に 1 回コマンドを実行することを意味し、root
はコマンドを実行するユーザーです。
リモート ホストの所有者の同意なしに、物理的に制御できない IP アドレスにこのようなものを向けないでください。
動作に満足したら、次のような行を追加して、生成された電子メール出力を抑制することができます。
MAILTO=""
ファイルの先頭にあります。
この仕組みは、ping が 1 つの ICMP エコー要求を送信し、-W
応答を数秒間待機し、さらにエコー要求を送信する必要がある場合は、-i
次のエコー要求を送信する前に数秒間待機するというものです。したがって、最初のエコー要求はすぐに送信され、2 番目 (例) は最初のエコー要求への応答が受信またはタイムアウトしてから 15 秒後、3 番目はさらに 15 秒後、4 番目はさらに 15 秒後に送信され、合計ウォールクロック実行時間は約 45 秒になります。次の 1 分間の初めに、ping が再び起動され、プロセスが繰り返されます。
また、たとえば /etc/rc.local (システムによっては名前が異なる可能性があります) から ping を起動し、-c N
オプションをスキップして ping を無期限に実行することもできます。ただし、これによりブート シーケンスが悪くなる場合があり、何かが原因で ping が終了した場合、特定の手順を実行して確認しない限り、自動的に再起動されません。