aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/libraries/classes/SysInfoLinux.php
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/libraries/classes/SysInfoLinux.php
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/libraries/classes/SysInfoLinux.php')
-rw-r--r--srcs/phpmyadmin/libraries/classes/SysInfoLinux.php103
1 files changed, 103 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/libraries/classes/SysInfoLinux.php b/srcs/phpmyadmin/libraries/classes/SysInfoLinux.php
new file mode 100644
index 0000000..21ac9cd
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/SysInfoLinux.php
@@ -0,0 +1,103 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Hold PhpMyAdmin\SysInfoLinux class
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin;
+
+use PhpMyAdmin\SysInfo;
+use PhpMyAdmin\SysInfoBase;
+
+/**
+ * Linux based SysInfo class
+ *
+ * @package PhpMyAdmin
+ */
+class SysInfoLinux extends SysInfoBase
+{
+ public $os = 'Linux';
+
+ /**
+ * Gets load information
+ *
+ * @return array with load data
+ */
+ public function loadavg()
+ {
+ $buf = file_get_contents('/proc/stat');
+ if ($buf === false) {
+ $buf = '';
+ }
+ $pos = mb_strpos($buf, "\n");
+ if ($pos === false) {
+ $pos = 0;
+ }
+ $nums = preg_split(
+ "/\s+/",
+ mb_substr(
+ $buf,
+ 0,
+ $pos
+ )
+ );
+
+ return [
+ 'busy' => (int) $nums[1] + (int) $nums[2] + (int) $nums[3],
+ 'idle' => (int) $nums[4],
+ ];
+ }
+
+ /**
+ * Checks whether class is supported in this environment
+ *
+ * @return bool true on success
+ */
+ public function supported()
+ {
+ return @is_readable('/proc/meminfo') && @is_readable('/proc/stat');
+ }
+
+ /**
+ * Gets information about memory usage
+ *
+ * @return array with memory usage data
+ */
+ public function memory()
+ {
+ preg_match_all(
+ SysInfo::MEMORY_REGEXP,
+ file_get_contents('/proc/meminfo'),
+ $matches
+ );
+
+ $mem = array_combine($matches[1], $matches[2]);
+
+ $defaults = [
+ 'MemTotal' => 0,
+ 'MemFree' => 0,
+ 'Cached' => 0,
+ 'Buffers' => 0,
+ 'SwapTotal' => 0,
+ 'SwapFree' => 0,
+ 'SwapCached' => 0,
+ ];
+
+ $mem = array_merge($defaults, $mem);
+
+ foreach ($mem as $idx => $value) {
+ $mem[$idx] = intval($value);
+ }
+
+ $mem['MemUsed'] = $mem['MemTotal']
+ - $mem['MemFree'] - $mem['Cached'] - $mem['Buffers'];
+
+ $mem['SwapUsed'] = $mem['SwapTotal']
+ - $mem['SwapFree'] - $mem['SwapCached'];
+
+ return $mem;
+ }
+}