source: trunk/www/platform.php@ 33

Last change on this file since 33 was 33, checked in by george, 16 years ago
  • Přidáno: Tabulka News pro uchování aktualit webu. Zobrazení aktualit na úvodní stránce.
File size: 2.3 KB
Line 
1<?php
2
3class Platform extends Module
4{
5 var $Id;
6
7 function __construct($Database)
8 {
9 $this->Database = $Database;
10 }
11
12 function MemoryUsage()
13 {
14 $Output = array();
15 exec('free -b', $Output);
16 $Row = $Output[2];
17 while(strpos($Row, ' ') !== false) $Row = str_replace(' ', ' ', $Row);
18 $RowParts = explode(' ', $Row);
19 $Row = $Output[3];
20 while(strpos($Row, ' ') !== false) $Row = str_replace(' ', ' ', $Row);
21 $RowParts2 = explode(' ', $Row);
22 return($RowParts[2] + $RowParts2[2]);
23 }
24
25 function MemoryTotal()
26 {
27 $Output = array();
28 exec('free -b', $Output);
29 $Row = $Output[1];
30 while(strpos($Row, ' ') !== false) $Row = str_replace(' ', ' ', $Row);
31 $RowParts = explode(' ', $Row);
32 return($RowParts[1]);
33 }
34
35 function SystemUptime()
36 {
37 $File = fopen('/proc/uptime', 'r');
38 $Uptime = fgets($File);
39 fclose($File);
40 $UptimeParts = explode(' ', $Uptime);
41 return($UptimeParts[0]);
42 }
43
44 function State()
45 {
46 global $Config;
47
48 $State = array();
49 $State['MemoryUsed'] = $this->MemoryUsage();
50 $State['MemoryTotal'] = $this->MemoryTotal();
51 $State['Uptime'] = $this->SystemUptime();
52 $DbResult = $this->Database->query('SELECT COUNT(*) FROM Server');
53 $DbRow = $DbResult->fetch_row();
54 $State['ServerCount'] = $DbRow[0];
55 $DbResult = $this->Database->query('SELECT COUNT(*) FROM Server WHERE Online = 1');
56 $DbRow = $DbResult->fetch_row();
57 $State['ServerOnlineCount'] = $DbRow[0];
58 $DbResult = $this->Database->query('SELECT COUNT(*) FROM User');
59 $DbRow = $DbResult->fetch_row();
60 $State['UserCount'] = $DbRow[0];
61 $DbResult = $this->Database->query('SELECT COUNT(*) FROM Emulator');
62 $DbRow = $DbResult->fetch_row();
63 $State['EmulatorCount'] = $DbRow[0];
64 $DbResult = $this->Database->query('SELECT COUNT(*) FROM Backup');
65 $DbRow = $DbResult->fetch_row();
66 $State['BackupCount'] = $DbRow[0];
67 $DbResult = $this->Database->query('SELECT COUNT(*) FROM Task');
68 $DbRow = $DbResult->fetch_row();
69 $State['TaskCount'] = $DbRow[0];
70 $DbResult = $this->Database->query('SELECT COUNT(*) FROM Task WHERE State != 2');
71 $DbRow = $DbResult->fetch_row();
72 $State['TaskQueued'] = $DbRow[0];
73 $State['ServerMaxCount'] = $Config['MaxServerCount'];
74 return($State);
75 }
76
77}
78
79?>
Note: See TracBrowser for help on using the repository browser.