PHPでPINGを使ってマシンの死活監視をする方法


Darian brown logo black v2 png  PNG 画像 600x175 px

PHPでサーバーの死活管理

サーバーが生きてるか死んでるかを確認するのにPingを使う方はいると思いますが、
今回PHPからPingを使う方法を知ったので自分用にメモ。

execを使用する方法、fsocketopenを使用する方法の2パターンありますが、
fsockeopneを使用するとポートの指定も出来るので、MySQLやApacheが稼働しているかのチェックにも使えます。

ソースコードは以下

IT/WEB業界への転職なら求人サイトGreen

execでサーバーにpingを送信する方法


/* Ping送信プログラム */
function ping($host)
{
        $r = exec(sprintf('ping -c 1 -W 5 %s', escapeshellarg($host)), 
                $res, $rval);
        //pingの結果を表示
        //print_r($r);
        return $rval === 0;
}

/* $hostに死活監視をしたいIPやドメインを指定します */
$host = 'www.example.com';
$up = ping($host);

echo $up ? '正常稼働中' : '応答なし';

fsockopenでサーバーにpingを送信する方法

こちらの方法ではポート指定が出来るので、80ポート以外を見たい場合に便利です。


/* Ping送信プログラム */
function ping($host,$port=80,$timeout=6)
{
        $fsock = fsockopen($host, $port, $errno, $errstr, $timeout);
        if ( ! $fsock ) {
        	return FALSE;
        } else{
           return TRUE;
        }
}

/* $hostに死活監視をしたいIPやドメインを指定します */
$host = 'www.example.com';
$up = ping($host);

echo $up ? '正常稼働中' : '応答なし';

以下のサイトを参考にさせていただきました。感謝!

 

この記事が気に入ったら
いいね!しよう

最新情報をお届けします

follow us in feedly