purazumakoiの[はてなブログ]

技術メモから最近はライフログも増えてきてます。

phpでtopコマンドを実行する

via
【メモ】 サーバのLoad Averageなどを監視するコマンド「top」をログに保存する(PHP版) | mutter
top - コマンド (プログラム) の説明 - Linux コマンド集 一覧表

10秒間隔で2回

$pp = popen('/usr/bin/top -b -n 2 -d 10', 'r');
while(!feof($pp)):
echo fgets($pp) . '
';
endwhile;
pclose($pp);

freeBSDだとなんかプロセスが2個しかでてこなかったので
下の部分をこう変えた

$pp = popen('/usr/bin/top -b -n 20 -d 1', 'r');

オプションは

[-b] : バッチモード 操作
top を「バッチモード」で起動する。 top の出力を他のプログラムやファイルに送る場合に役立つ。 このモードでは、top は入力を受け付けず、 '-n' (COで設定された繰り返し回数に達するか、 kill されるまで実行を続ける。


[-n] : 繰り返し回数 制限:-n number
top が終了するまでの繰り返し回数またはフレームの最大数を指定する。


[-d] : 遅延時間 間隔:-d ss.tt (秒 .1/10秒 )
スクリーンを更新する間隔を指定する。 ユーザー個人の設定ファイルにあるこれに対応する値、 または起動時のデフォルトの値を上書きする。 実行後に(CI 'd' または 's' で変更できる。
小数点以下の秒も指定できるが、負数は許可されない。 しかし全ての場合において、 top が「セキュアモード」で実行されているときには、 このような変更は禁止されている。 ただし root の場合 (かつ(CO 's' が使われていない場合) は除く。 「セキュアモード」についてのより詳しい情報は、 「5a. システム設定ファイル」(Xt。

を使っている