리눅스, PHP 받고 서버 상태 CPU, MEM 사용량, 디스크 사용량, IP 주소 획득, MAC 주소와 기록을 얻기 위해 다른 정보

서버 상태 기록을 취득하는 것은 다음 분할 처리 결과 등의 방법이 유용한 정보 자체를 구하는 방식으로 출력 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 범위를 공사 무료 동적 참여하기 
* * /

 

추천

출처www.cnblogs.com/Gasg/p/10948580.html