快捷搜索:   nginx

PHP获取LINUX服务器系统运行时间在线时间uptime

建站的时候有时候想给访客知道你网站服务器已经连续运行多长时间,在页脚加上服务器的uptime,正常来说用exec函数调用服务器的uptime命令就可以很轻松搞定,但是为了安全,exec函数一般都会在php.ini里面被禁用了,经过一番搜索,找到下面一段代码,希望对大家有用。


调用:

<?php echo $uptime ?>

PHP获取服务器在线时间完整代码

<?php
function sys_linux()
{
if (false === ($str = @file("/proc/uptime"))) return false;
$str = explode(" ", implode("", $str));
$str = trim($str[0]);
$min = $str / 60;
$hours = $min / 60;
$days = floor($hours / 24);
$hours = floor($hours - ($days * 24));
$min = floor($min - ($days * 60 * 24) - ($hours * 60));
if ($days !== 0) $res['uptime'] = $days."天";
if ($hours !== 0) $res['uptime'] .= $hours."小时";
$res['uptime'] .= $min."分钟";
return $res;
}
$sysInfo = sys_linux();
$uptime = $sysInfo['uptime'];
echo $uptime;
?>


当然如果你没禁用exec函数的打算

就可以用这个

<?php
/**
 * 获取linux系统负载
 */
function get_system_load(){
    if(strtolower(PHP_OS) != 'linux'){
        return '';
    }
    
    $output = '';
    $result_status = '';
    $command = 'uptime';
    exec($command, $output, $result_status);
    if($result_status == 0){
        $arr = [];
        preg_match("/load average:s+(.*)$/", reset($output), $arr);
        if(is_array($arr)){
            $loadStr = end($arr);
            $loadArr = explode(',', $loadStr);
            $load = [
                '1min' => trim($loadArr[0]),
                '5min' => trim($loadArr[1]),
                '15min' => trim($loadArr[2]),
            ];
            return $load;
        }
    }
}
// 运行
print_r(get_system_load());
?>


顶(1)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论