1
|
<?
|
2
|
function cpu_usage() {
|
3
|
return get_cpuusage(get_cputicks(), get_cputicks());
|
4
|
}
|
5
|
|
6
|
|
7
|
function get_uptime() {
|
8
|
exec("/sbin/sysctl -n kern.boottime", $boottime);
|
9
|
preg_match("/sec = (\d+)/", $boottime[0], $matches);
|
10
|
$boottime = $matches[1];
|
11
|
$uptime = time() - $boottime;
|
12
|
|
13
|
if ($uptime > 60)
|
14
|
$uptime += 30;
|
15
|
$updays = (int)($uptime / 86400);
|
16
|
$uptime %= 86400;
|
17
|
$uphours = (int)($uptime / 3600);
|
18
|
$uptime %= 3600;
|
19
|
$upmins = (int)($uptime / 60);
|
20
|
|
21
|
$uptimestr = "";
|
22
|
if ($updays > 1)
|
23
|
$uptimestr .= "$updays days, ";
|
24
|
else if ($updays > 0)
|
25
|
$uptimestr .= "1 day, ";
|
26
|
$uptimestr .= sprintf("%02d:%02d", $uphours, $upmins);
|
27
|
return $uptimestr;
|
28
|
}
|
29
|
|
30
|
function get_cputicks() {
|
31
|
sleep(5);
|
32
|
$cputicks = explode(" ", `/sbin/sysctl -n kern.cp_time`);
|
33
|
return $cputicks;
|
34
|
}
|
35
|
|
36
|
function get_cpuusage($cpuTicks, $cpuTicks2) {
|
37
|
$diff = array();
|
38
|
$diff['user'] = ($cpuTicks2[0] - $cpuTicks[0]);
|
39
|
$diff['nice'] = ($cpuTicks2[1] - $cpuTicks[1]);
|
40
|
$diff['sys'] = ($cpuTicks2[2] - $cpuTicks[2]);
|
41
|
$diff['intr'] = ($cpuTicks2[3] - $cpuTicks[3]);
|
42
|
$diff['idle'] = ($cpuTicks2[4] - $cpuTicks[4]);
|
43
|
|
44
|
//echo "<!-- user: {$diff['user']} nice {$diff['nice']} sys {$diff['sys']} intr {$diff['intr']} idle {$diff['idle']} -->";
|
45
|
$totalDiff = $diff['user'] + $diff['nice'] + $diff['sys'] + $diff['intr'] + $diff['idle'];
|
46
|
$totalused = $diff['user'] + $diff['nice'] + $diff['sys'] + $diff['intr'];
|
47
|
if (isset($totalused)&&$totalused <= 0) {
|
48
|
$totalused = 0.001;
|
49
|
}
|
50
|
$cpuUsage = floor(100 * ($totalused / $totalDiff));
|
51
|
|
52
|
return $cpuUsage;
|
53
|
}
|
54
|
|
55
|
function get_pfstate() {
|
56
|
global $config;
|
57
|
if (isset($config['system']['maximumstates']) and $config['system']['maximumstates'] > 0)
|
58
|
$maxstates="/{$config['system']['maximumstates']}";
|
59
|
else
|
60
|
$maxstates="/10000";
|
61
|
$curentries = `/sbin/pfctl -si |grep current`;
|
62
|
if (preg_match("/([0-9]+)/", $curentries, $matches)) {
|
63
|
$curentries = $matches[1];
|
64
|
}
|
65
|
return $curentries . $maxstates;
|
66
|
}
|
67
|
|
68
|
|
69
|
function disk_usage()
|
70
|
{
|
71
|
exec("df -h | grep -w '/' | awk '{ print $5 }' | cut -d '%' -f 1", $dfout);
|
72
|
$diskusage = trim($dfout[0]);
|
73
|
|
74
|
return $diskusage;
|
75
|
}
|
76
|
|
77
|
function swap_usage()
|
78
|
{
|
79
|
$swapUsage = `/usr/sbin/swapinfo | cut -c45-55 | grep "%"`;
|
80
|
$swapUsage = ereg_replace('%', "", $swapUsage);
|
81
|
$swapUsage = ereg_replace(' ', "", $swapUsage);
|
82
|
$swapUsage = rtrim($swapUsage);
|
83
|
|
84
|
return $swapUsage;
|
85
|
}
|
86
|
|
87
|
function mem_usage()
|
88
|
{
|
89
|
exec("/sbin/sysctl -n vm.stats.vm.v_active_count vm.stats.vm.v_inactive_count " .
|
90
|
"vm.stats.vm.v_wire_count vm.stats.vm.v_cache_count vm.stats.vm.v_free_count", $memory);
|
91
|
|
92
|
$totalMem = $memory[0] + $memory[1] + $memory[2] + $memory[3] + $memory[4];
|
93
|
$freeMem = $memory[4];
|
94
|
$usedMem = $totalMem - $freeMem;
|
95
|
$memUsage = round(($usedMem * 100) / $totalMem, 0);
|
96
|
|
97
|
return $memUsage;
|
98
|
}
|