PHPでディスク状況を調べる(dfコマンド)

PHPでディスク状況を調べる(dfコマンド)

PHPPHPでディスク状況を調べる(dfコマンド)

今回は、PHP でサーバのディスク状況を取得してみます。サーバ上ではコンソールから df コマンドで標準出力されますが、PHP でも同じ要領で取得することが可能です。PHP には df の関数は用意されていないので、exec コマンドでdf コマンドを呼び出して結果を取得します。

// DISK INFO
exec ('df -h', $result, $status);

df -h   : ディスク状況を表示(容量に適したサイズで出力)
$result : コマンドの結果が入る配列
$status : コマンドの結果(0:成功)

後は、配列に入った結果を整形すれば、HTML の表形式などで、きれいに見せることが可能です。参考までに、HTML の表への整形でハマったことをまとめておきます。$result には標準出力される内容が 1 行ずつ入ります。よって、$result[0] は下記のような内容です。

Filesystem            Size  Used Avail Use% Mounted on

これを整形するには、スペースで区切るのが手頃ですので、1 行ずつ取り出し、split 関数でさらに分解します。

foreach ($result as $key => $value) {
  $view = split(" ", $value);
}

しかし、半角スペースの数は状況によって違うので、これではうまくいきません。まずは、連続するスペースを 1 つのスペースにします。また、「Mounted on」は 1 つの項目名なので、このスペースを取り除きます。
(もしくは、スペース以外の文字で連結する)

foreach ($result as $key => $value) {
  // 前後に空白のある「Mounted on」と一致(\b[文字列]\b)
  $value = preg_replace("/\bMounted on\b/i", "MountedOn", $value);
  // 連続するスペースに一致
  $value = preg_replace("/\s+/", " ", $value);
  $view = split(" ", $value);
}

あとは、$view をうまく利用して整形すれば完成です。

最終更新日:

関連記事

人気記事

新着情報