2

サーバーのダウンタイムを検出するための簡単で汚いスクリプトを作成しています。1 台のサーバーと 2 台のリモート クライアントがあり、サーバーが稼働しているかどうかを確認するために毎秒 ping を実行しています。

cron1 分間に 1回しか実行できない場合、クライアント マシンで毎秒実行するようにタスクを設定するにはどうすればよいでしょうか。上記を達成するための最良の方法は何ですか?

さらに、クライアント マシンが再起動する可能性があり、プログラムを実行し続ける必要があります (ここでの cron と同様)。

4

3 に答える 3

2

あなたがpingについて尋ねたことは知っています。他にも考慮すべき点があります。

「稼働時間」を取得するためのより合理的な方法は、wtpmx、utmp、またはこれを目的としたその他のファイルなどのデータベースにクエリを実行するものを使用することです。ping プロトコルである ICMP は、使用中のシステムでは無視される可能性があり、無視されることになります。返却できなかったからといって、必ずしもシステムがダウンしているとは限りません。または、システムが機能していません。多くの理由が考えられます。

最新の UNIX ボックスでアップタイムを取得することを検討する 1 つの方法:

ssh remoteserver 'uptime'

また、ping を実行している「理由」も考慮してください。

ping は、システムが動作しているかどうか、および ping パケットに応答しているかどうかを確認するのに役立ちますが、システムが実際に機能しているかどうかはわかりません。これはおそらくあなたが確実に知りたいことです。たとえば、データベース サーバーまたはメール サーバーで、ハングしたプロセスが発生している場合があります。そのため、ping には応答しますが、意図したことはほとんど実行されません。ping だけでなく、より便利なコマンドを作成することもできます。サーバー上の 24 時間 365 日運用データベースに 1 分に 1 回ログインし、「OKAY」などの無害なものをエコーする SQL スクリプトを実行します。例えば、

select 'OKAY' from dual;
于 2013-04-15T01:02:10.350 に答える