summaryrefslogtreecommitdiffstats
path: root/usr/local/www/includes/functions.inc.php
blob: 9878105a804eb3c5bf0e4fb4f535145aa6a87916 (plain)
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?
function cpu_usage() {
	return get_cpuusage(get_cputicks(), get_cputicks());
}


function get_uptime() {
	exec("/sbin/sysctl -n kern.boottime", $boottime);
	preg_match("/sec = (\d+)/", $boottime[0], $matches);
	$boottime = $matches[1];
	$uptime = time() - $boottime;

	if ($uptime > 60)
		$uptime += 30;
	$updays = (int)($uptime / 86400);
	$uptime %= 86400;
	$uphours = (int)($uptime / 3600);
	$uptime %= 3600;
	$upmins = (int)($uptime / 60);

	$uptimestr = "";
	if ($updays > 1)
		$uptimestr .= "$updays days, ";
	else if ($updays > 0)
		$uptimestr .= "1 day, ";
	$uptimestr .= sprintf("%02d:%02d", $uphours, $upmins);
	return $uptimestr;
}

function get_cputicks() {
	sleep(1);
	$cputicks = explode(" ", `/sbin/sysctl -n kern.cp_time`);
	return $cputicks;
}

function get_cpuusage($cpuTicks, $cpuTicks2) {
	$diff = array();
	$diff['user'] = ($cpuTicks2[0] - $cpuTicks[0]);
	$diff['nice'] = ($cpuTicks2[1] - $cpuTicks[1]);
	$diff['sys'] = ($cpuTicks2[2] - $cpuTicks[2]);
	$diff['intr'] = ($cpuTicks2[3] - $cpuTicks[3]);
	$diff['idle'] = ($cpuTicks2[4] - $cpuTicks[4]);
	
	//echo "<!-- user: {$diff['user']}  nice {$diff['nice']}  sys {$diff['sys']}  intr {$diff['intr']}  idle {$diff['idle']} -->";
	$totalDiff = $diff['user'] + $diff['nice'] + $diff['sys'] + $diff['intr'] + $diff['idle'];
	$totalused = $diff['user'] + $diff['nice'] + $diff['sys'] + $diff['intr'];
		if (isset($totalused)&&$totalused <= 0) {
			$totalused = 0.001;
		}
	$cpuUsage = floor(100 * ($totalused / $totalDiff));
	
	return $cpuUsage;
}

function get_pfstate() {
	global $config;
        if (isset($config['system']['maximumstates']) and $config['system']['maximumstates'] > 0)
                $maxstates="/{$config['system']['maximumstates']}";
        else
                $maxstates="/10000";
        $curentries = `/sbin/pfctl -si |grep current`;
        if (preg_match("/([0-9]+)/", $curentries, $matches)) {
             $curentries = $matches[1];
        }
        return $curentries . $maxstates;
}

function has_temp() {
	if(`/sbin/dmesg -a | /usr/bin/grep net4801` <> "") {
		/* Initialize hw monitor */
		exec("/usr/local/sbin/env4801 -i");
		return true;
	}

	/* should only reach here if there is no hardware monitor */
	return false;
}

function get_hwtype() {
        if(`/sbin/dmesg -a | /usr/bin/grep net4801` <> "") {
                return "4801";
        }

	return;
}

function get_temp() {
	switch(get_hwtype()) {
		case '4801':
			$ret = rtrim(`/usr/local/sbin/env4801 | /usr/bin/grep Temp |/usr/bin/cut -c24-25`);
			break;
		default:
			return;
	}

	return $ret;
}

function disk_usage()
{
	exec("/bin/df -h | /usr/bin/grep -w '/' | /usr/bin/awk '{ print $5 }' | /usr/bin/cut -d '%' -f 1", $dfout);
	$diskusage = trim($dfout[0]);

	return $diskusage;
}

function swap_usage()
{
	$swapUsage = `/usr/sbin/swapinfo | /usr/bin/cut -c45-55 | /usr/bin/grep "%"`;
	$swapUsage = ereg_replace('%', "", $swapUsage);
	$swapUsage = ereg_replace(' ', "", $swapUsage);
	$swapUsage = rtrim($swapUsage);

	return $swapUsage;
}

function mem_usage()
{
	exec("/sbin/sysctl -n vm.stats.vm.v_active_count vm.stats.vm.v_inactive_count " .
		"vm.stats.vm.v_wire_count vm.stats.vm.v_cache_count vm.stats.vm.v_free_count", $memory);
	
	$totalMem = $memory[0] + $memory[1] + $memory[2] + $memory[3] + $memory[4];
	$freeMem = $memory[4];
	$usedMem = $totalMem - $freeMem;
	$memUsage = round(($usedMem * 100) / $totalMem, 0);

	return $memUsage;
}
OpenPOWER on IntegriCloud