2012-03-23 6 views
5

Sto utilizzando PHP per leggere l'utilizzo della CPU corrente. Sono su un vServer, quindi shell_exec è abilitato.Debian: scopri l'utilizzo della CPU tramite bash

Ho provato grep su ps, ma non ha funzionato. Come posso leggere l'attuale utilizzo della CPU% usando bash?

+0

caricare media da bash è sufficiente? anche 'cat/proc/loadavg', http://www.cyberciti.biz/tips/how-do-i-find-out-linux-cpu-utilization.html (sysstat) potrebbe essere qualcosa che potresti voler usare/installare. – TryTryAgain

risposta

5

Il modo più semplice è semplicemente quello di utilizzare sys_getloadavg

Se si vuole chiedere direttamente il sistema operativo, utilizzare uptime

$uptimeString = `uptime`; 

o uno qualsiasi dei existing answers a come fare esattamente la stessa cosa in bash e avvolgere solo i backtick.

+0

Ho visto il comando getLoadAvg prima, ma non è lo stesso dell'utilizzo della CPU (%). Anche l'uptime e getloadavg potrebbero essere interessanti. Ma come posso scoprire l'utilizzo della CPU? – bytecode77

+0

hai letto le risposte esistenti - ad es. la prima risposta nella domanda a cui mi sono collegato? – AD7six

+0

Ah, l'ho appena visto. Grazie! – bytecode77

3

Dopo aver dato un'occhiata più da vicino a tutte le soluzioni, sono arrivato fino a questo codice:

<?php 
    exec('ps -aux', $processes); 
    foreach($processes as $process) 
    { 
     $cols = split(' ', ereg_replace(' +', ' ', $process)); 
     if (strpos($cols[2], '.') > -1) 
     { 
      $cpuUsage += floatval($cols[2]); 
     } 
    } 
    print($cpuUsage); 
?> 

Si chiama ps -aux e riassume la CPU%.