서버 상태 기록을 취득하는 것은 다음 분할 처리 결과 등의 방법이 유용한 정보 자체를 구하는 방식으로 출력 SHELL 명령 문자열을 획득하기 위해 사용되는
취득 게시 일반적으로 치료를 사용
<? PHP의 $ FP = 는 popen ( "R & LT '"SHELL 명령을 실행할' ); $ RS를 = '' ; 그동안 (! 무엇이 일어 났는지를 결정하기 위해 feof ( $ FP )) { $ RS =. FREAD ( $ FP , 1024 ) } 만일 pclose ( FP $ ) // 취득한 출력 RS의 $ 정보는 = (가) 폭발 "\ N-"( $ RS ) //는 랩 분할 핸들링 $ 인포를 = 폭발 ( "," $ 정보 [0]) / / 치료 쉼표 2 분할 $ Info3을= TRIM ( $ 인포 [0], '%의 CPU (S)'); // 문자열을 제거하는 약 3 처리 $ Info4 = preg_replace이다 ( '/ \ S {2} /' $ RS를 ) // 프로세스 실시 예 4 대안 문자열 // 정보들은 상이한 조합의 프로세스를 처리 할 필요
명령 목록 레코드를 처리
// CPU 사용량과 메모리 사용량 가져 오기 $의 FP를 = 는 popen ( '-b 최고 -n 2 | 그렙 -E "(CPU \ (S \)) | (킬로바이트 MEM)이"', "R & LT" ); / * 설명 : 한 번만 데이터가 정확하지 취득하지만, 느린 반환의 원인이 있기 때문에, 그것은 비동기 처리하게하는 것이 좋습니다, 두 배의 정보를 얻을 방법을 SYS 정보가가 ($ RS "는 N-을 \") 폭발 = $; $ = cpu_info 폭발 ( ",", SYS_INFO $ [2]); $의이 cpu_usage = TRIM (TRIM ($으로 눌러 cpu_info [0], '%의 CPU (S)') 'US'); // 비율 $의 mem_info가 = ""(폭발 SYS_INFO $ [ 3) 메모리 어레이의 // 양 $의 mem_total = (TRIM ($ mem_info [0], '킬로바이트의 Mem') 트림, '전체'); $ 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 = 트리밍 ( HD의 $ [. 3, 'G는'); // 디스크 여유 공간 단위는 G $ hd_usage = TRIM ( $의 HD '[4를.]% ');// 점의 비율을 마운트
// 获取MAC地址 $ FP = 는 popen ( '-c 네트워크 lshw | 그렙 직렬 | 헤드 -n 1 ","R " ); $ RS = FREAD ( $의 FP 1024 ); 만일 pclose ( $ FP ); $ 맥은 = 폭발 ( ':', $ R을 ); array_shift ( $ 맥 ); $ MACADDR = 내파 ( ':', $ 맥 ); // XX : XX : XX : XX : XX
// 내부 IP 주소를 얻을 $의 FP = 는 popen ( 'IP 요지 | 그렙 (INET) | 그렙 -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 범위를 공사 무료 동적 참여하기 * * /