2016-04-18 2 views
-1

私はグーグルで、ここで私のサーバーのメモリ使用量を返すコードを見つけましたが、エラーが発生していますUndefined offset: 1なぜですか?リターンサーバーのメモリ使用

コード:

function get_server_memory_usage(){ 

     $free = shell_exec('free'); 
     $free = (string)trim($free); 
     $free_arr = explode("\n", $free); 
     $mem = explode(" ", $free_arr[1]); 
     $mem = array_filter($mem); 
     $mem = array_merge($mem); 
     $memory_usage = $mem[2]/$mem[1]*100; 

     return $memory_usage; 
    } 

答えて

0

これは、これが作業していて、ここにチェックするためのいくつかの簡単なものですされていない正確な理由を判別するために、もう少し詳細が必要です。

1)ですサーバーはLinuxサーバーですか?このスクリプトはWindowsでは正しく実行されません。

2) "フリー"コマンドは、プログラムに正しくエイリアスされていないか、まったくインストールされていない可能性があります。これを確認するには、コマンドラインで "free"を実行し、出力があることを確認します。

3) "フリー"プログラムの出力は、システムによって異なる場合があります。このコードは、コマンドの実行時にいくつかの行が出力されていることを前提としています。 1行の出力しかない場合、このエラーは意味をなさないでしょう。上記のコードを修正するために出力を貼り付ける必要があります。