サーバのステータスレコードが出力方法シェルコマンド文字列を取得するために使用される取得する処理結果と有用な情報自体を取得する他の方法その後、分割され
取得掲示や、一般的に治療を使用
<?PHP $ FP = popenの( "R&LT" 'シェルコマンドを実行する' ); $ RSを = '' ; ながら(!FEOF($ FP )){ $ RS = FREAD($ FP、1024 ); } pclose(FP $ ); // 取得した出力RSの $情報は = 爆発 "\ N-"、($ RS); // ラップスプリット取り扱い の$ INF02を = 爆発、 ""($情報を [0]); / / 治療コンマ2を分割 $情報3を= TRIM($ INF02 [0]、 '%のCPU(S)'); // 文字列を除去するために約3を扱う $情報4 = にpreg_replace( '/ \ S {2} /'、$ RSを); // プロセス実施形態または4列 //彼らは異なる組み合わせのプロセスを処理するために必要な情報
コマンドリストのレコードの処理
// CPU使用率やメモリ使用量を取得 $のFPを = にpopen( '-bトップ-n 2 |はgrepの-E "(CPU \(S \))|(KiBのMEM)"'、 "R&LT" ); / * 説明:データのみが正確ではありませんが、遅いリターンが原因取得するので、非同期処理にするために推奨される1回、2回の情報を取得する 方法は、 SYS INFOは(、$ RS「N-を\」)爆発= $; $ = cpu_infoが爆発します(「」、 SYS_INFO $ [2]); $のcpu_usage = TRIM(TRIM($ cpu_info [0]、 '%のCPU(S):') '米国'); //パーセント の$ mem_infoは= ""(爆発 SYS_INFO $、[ 3])と、メモリアレイの//量 の$ mem_total =(TRIM($ mem_info [0]、 'KiBのMemの:')TRIM、 '総'); $ mem_used = TRIM(TRIM($ mem_infoを[2]「を使用「)); //割合; =ラウンド(INTVAL 100 *($ mem_used)/ INTVAL($のmem_total)、2)$ mem_usage * /
// ディスク使用量の取得 $ fpの = popenのを( 'DF -LH |グレップの-E "^(/)"'、 "R" ); $ RS = のfread($ fpは、1024 ); pclose($ FP ); $ RS = にpreg_replace( '/ \ S {2、} /'、 ''、$ RS); // 複数の空間に入れる"_" $のHD = 爆発( ""、$ RS ); $ hd_avail =は、TRIM(HDの$ 'G')[3]; // ディスクの空き容量の単位G $ hd_usage = TRIM($ハイビジョン、 '[4]% ');// ポイントの割合をマウント
// 获取MAC地址 $ FP = popenの( '-cネットワークlshw | grepのシリアル|ヘッド-n 1'、 "R" ); $ RS = のfread($ fpは、1024 ); pclose($ FP ); $ MACは = 爆発( ':'、$ RS )。 array_shift($マック)。 $ MACADDR = 破( ':'、$マック); // XX:XX:XX:XX:XX
// 内部IPアドレスの取得 $ fpを = のpopen( 'IP addrの|はgrep inetに|はgrep -v INET6'、 "R"を); / * * 結果は:独自の処理 グローバルINET 192.168.1.180/24 BRDの192.168.1.255の範囲をダイナミック INET 172.20.175.225/28 BRD 172.20.175.239の範囲、株式会社フリーダイナミック参加 INET 127.0.0.1/8 BRDの127.255.255.255の範囲を、(株)フリーダイナミックに参加 * * /