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