Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
Zitat
Original von LinuxFan
Hi Leute,
nein bitte kein top!
Zitat
Ich möchte ein Script bauen, dass mir, wenn die CPU Auslastung im Mittel von z.B. 5 Minuten über 80 % liegt, mir ne SMS schickt. Wie bekomme ich nun ein sauberes Parsing der CPU-Auslastung hin?
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
top 13159 michael cwd DIR 3,3 8192 4202466 /home/michael top 13159 michael rtd DIR 3,3 4096 2 / top 13159 michael txt REG 3,3 83200 5417664 /usr/bin/top top 13159 michael mem REG 3,3 104484 2894313 /lib/ld-2.3.3.so top 13159 michael mem REG 3,3 316410 2899059 /lib/libncurses.so.5.4 top 13159 michael mem REG 3,3 1349081 2894339 /lib/tls/libc.so.6 top 13159 michael 0u CHR 136,1 3 /dev/pts/1 top 13159 michael 1u CHR 136,1 3 /dev/pts/1 top 13159 michael 2u CHR 136,1 3 /dev/pts/1 top 13159 michael 3r REG 0,3 0 4026531841 /proc/uptime top 13159 michael 4r REG 0,3 0 4026531840 /proc/loadavg top 13159 michael 5r REG 0,3 0 4026531853 /proc/stat top 13159 michael 6r REG 0,3 0 4026531842 /proc/meminfo |
Quellcode |
|
1 2 3 4 5 6 7 8 |
cpu 85652 3337 15675 1224793 41205 3245 3490 cpu0 85652 3337 15675 1224793 41205 3245 3490 intr 17390097 13775611 3964 0 3 3 0 5 0 2 0 0 0 152101 0 25762 17785 1980327 0 1202686 231841 0 0 3 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 ctxt 12011161 btime 1098115219 processes 13187 procs_running 2 procs_blocked 0 |
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
<?php /** * array getStat(string $_statPath) * * reads the /proc/stat file and parses out the pertinant information * * This function is meant to work in conjunction with getCpuUsage. $_statPath should contain the * path to stat (typicly /proc/stat) * * Returns an array of timings on success, false on failure **/ function getStat($_statPath) { if (trim($_statPath) == '') { $_statPath = '/proc/stat'; } if (!is_readable($_statPath)) { return false; } $stat = file($_statPath); if (substr($stat[0], 0, 3) == 'cpu') { $parts = explode(" ", preg_replace("!cpu +!", "", $stat[0])); } else { return false; } $return = array(); $return['user'] = $parts[0]; $return['nice'] = $parts[1]; $return['system'] = $parts[2]; $return['idle'] = $parts[3]; return $return; } /** * array getCpuUsage([string $_startpath]) * * Returns an array of percentages representing the various CPU usage states * * The optional $_statPath variable should only be set if the stat file does not exist * in /proc/stat * * Returns an array of percentages on success, terminates the script on failure **/ function getCpuUsage($_statPath = '/proc/stat') { $time1 = getStat($_statPath) or die("getCpuUsage(): couldn't access STAT path or STAT file invalid\n"); sleep(1); $time2 = getStat($_statPath) or die("getCpuUsage(): couldn't access STAT path or STAT file invalid\n"); $delta = array(); foreach ($time1 as $k=>$v) { $delta[$k] = $time2[$k] - $v; } $deltaTotal = array_sum($delta); $percentages = array(); foreach ($delta as $k=>$v) { $percentages[$k] = round($v / $deltaTotal * 100, 2); } return $percentages; } // output the structure of the resulting array var_dump(getCpuUsage()); ?> |