hget($name, ''); $result = []; $cur_time = time(); $ago_time = 0; $time_check = function($stat_str, $cur_time) { $value = explode('-', $stat_str); $value = "$value[0]-$value[1]-$value[2] $value[3]:$value[4]:$value[5]"; $stat_time = strtotime($value); if($stat_time == false) return false; $check_seconds = 1800; $diff_time = $cur_time - $stat_time; if($diff_time > $check_seconds) { return false; }else{ return $diff_time; } }; foreach ($servers as $ip => $server_name) { $hash_str = $hash_data[$ip]; $item = []; if (!empty($hash_str)) { $hash_str = str_replace('\t', "", $hash_str); $hash_str = ltrim($hash_str, '#'); $arrs = explode('#', $hash_str); foreach ($arrs as $arr) { $data = explode(':', $arr); $key = ltrim($data[0], '_'); $value = $data[1]; if ($key == 'cur_time') { $diff_time = $time_check($value, $cur_time); if ($diff_time == false) { $value = '定时更新未正常工作'; } else { $ago_time = $diff_time; } } elseif (strpos($key, 'dev') !== false) { $key = str_replace('_', "/", $key); $value = explode(',', $value); if(strpos($value[0], 'T') !== false) $value[0] = $value[0] * 1024 . 'G'; if(strpos($value[1], 'T') !== false) $value[1] = $value[1] * 1024 . 'G'; $percent = $value[1]/$value[0]*100; $value = "{$value[1]}/{$value[0]} (" . round($percent,2). "%)"; } else { $key = str_replace('_', "/", $key); $value = rtrim($value, '.'); } $item[$key] = $value; ksort($item); } } $item["server_name"] = $server_name; $result[$ip] = $item; } Tpl::output('data', $result); Tpl::output('ago_time', $this->elapse_time($ago_time)); Tpl::showpage('arw.monitor'); } }