php读取服务器(CentOS 6.5)状态并存入数据库

php读取服务器(CentOS 6.5)状态并存入数据库

<?php
$db = mysql_connect("192.168.1.111","root","12345678");
mysql_select_db( 'database' );

//OS信息
exec('head -n 1 /etc/issue',$os);

//CPU型号
exec('cat /proc/cpuinfo |grep "model name"|uniq',$cpu_mod_tmp);
$tmp = explode(':',$cpu_mod_tmp[0]);
$cpu_mod[0] = trim($tmp[1]);

//物理CPU数
exec('cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l',$cpu_num);
$cpu_num[0] = 'CPU(s):'.$cpu_num[0];

//核数
exec('cat /proc/cpuinfo |grep "cores"|uniq',$core_num_tmp);
$tmp = explode(':',$core_num_tmp[0]);
$core_num[0] = 'Core(s):'.trim($tmp[1]);

//内存总量
exec('grep MemTotal /proc/meminfo',$mem_sum_tmp);
$tmp = explode(':',$mem_sum_tmp[0]);
$tmp[1] = trim($tmp[1]);
$mem_sum[1] = preg_replace('|[a-zA-Z%:()s*]+|','',$tmp[1]);
$mem_sum[0] = ceil($mem_sum[1]/1024/1024);

//运行时间及系统负载
exec('uptime',$time_tmp);
$tmp = explode('up',$time_tmp[0]);
$tmp2 = explode('user',$tmp[1]);
$uptime_tmp = explode(',',$tmp2[0]);
if(strstr($uptime_tmp[0],'day') && (preg_match("/^((?!min).)*$/is", $uptime_tmp[0])))
{
    $uptime_tmp[0] = preg_replace('|[a-zA-Z%:()s*]+|','',$uptime_tmp[0]).'day(s)  ';
    if(strstr($uptime_tmp[1],':'))
    {
        $hm = explode(':',$uptime_tmp[1]);
        $uptime_tmp[1] = $hm[0].'hours  '.$hm[1].'min';
        $uptime[0] = $uptime_tmp[0].$uptime_tmp[1];//最终结果
    }
    else 
        $uptime[0] = $uptime_tmp[0].preg_replace('|[a-zA-Z%:()s*]+|','',$uptime_tmp[1]).'min  ';
        $load[0] = preg_replace('|[a-zA-Z%:()s*]+|','',$tmp2[1]);
        $load[0] = ltrim($load[0],',') ;
}
elseif(strstr($uptime_tmp[0],'min'))
{
    $hm = explode('min',$uptime_tmp[0]);
    $uptime_tmp[0] = $hm[0].'min';
    $uptime[0] = $uptime_tmp[0];//最终结果
    $load[0] = preg_replace('|[a-zA-Z%:()s*]+|','',$tmp2[1]);
    $load[0] = ltrim($load[0],',') ;
}
else 
{
    $hm = explode(':',$uptime_tmp[0]);
    $uptime_tmp[0] = $hm[0].'hours  '.$hm[1].'min';
    $uptime[0] = $uptime_tmp[0];//最终结果
    $load[0] = preg_replace('|[a-zA-Z%:()s*]+|','',$tmp2[1]);
    $load[0] = ltrim($load[0],',') ;
}

//CPU及内存使用率
exec("top -b -n 1 | grep -E '(Cpu|Mem)'",$aStatTmp);
foreach($aStatTmp as $key=>$value)
{
    $aStat[] = explode(',',$value);
}
$cpu_use[0] = preg_replace('|[a-zA-Z%:()s*]+|','',$aStat[0][0]);
$mem_use[0] = preg_replace('|[a-zA-Z:s*]+|','',$aStat[1][1]);
$mem_use[0] = round($mem_use[0]/$mem_sum[1]*100,1);

//查看网卡流量信息
exec('cat /proc/net/dev',$fluxTmp);
$a = $fluxTmp;
foreach($fluxTmp as $key1=>$v1)
{
    if(strstr($v1,'eth') !== false) 
    {
        array_splice($fluxTmp, $key1);
    }
}
$b = array_diff($a,$fluxTmp);
$num = 0;
$tmpi = array();
foreach($b as $k2=>$v2)
{
    $v2 = str_replace(' ',',',$v2);
    $ifTmp = explode(',',$v2);

    foreach($ifTmp as $k=>$v)
    {
        if($v === '')
        {
            unset($ifTmp[$k]);
        }
    }
    foreach($ifTmp as $k3=>$v3)
    {
        $tmpi[$num][] = $v3;
    }
    $num++;

}

for($i=0;$i<count($tmpi);$i++)
{

    if($i===0)
    {
        if(strlen($tmpi[0][0])>5)
        {
            $z = explode(':',$tmpi[0][0]);
            $fir_in = ceil($z[1]/1024/1024);
            $fir_out = ceil($tmpi[0][8]/1024/1024);
        }
        elseif(strlen($tmp[0][0])==5) 
        {
            $fir_in = ceil($tmpi[0][1]/1024/1024);
            $fir_out = ceil($tmpi[0][9]/1024/1024);
        }
    }
    elseif($i===1)
    {
        if(strlen($tmpi[1][0])>5)
        {
            $z = explode(':',$tmpi[1][0]);
            $sec_in = ceil($z[1]/1024/1024);
            $sec_out = ceil($tmpi[1][8]/1024/1024);
        }
        elseif(strlen($tmpi[1][0])==5)
        {
            $sec_in = ceil($tmpi[1][1]/1024/1024);
            $sec_out = ceil($tmpi[1][9]/1024/1024);
        }
    }
    elseif($i===2)
    {
        if(strlen($tmpi[2][0])>5)
        {
            $z = explode(':',$tmpi[2][0]);
            $thi_in = ceil($z[1]/1024/1024);
            $thi_out = ceil($tmpi[2][8]/1024/1024);
        }
        elseif(strlen($tmpi[2][0])==5)
        {
            $thi_in = ceil($tmpi[2][1]/1024/1024);
            $thi_out = ceil($tmpi[2][9]/1024/1024);
        }
    }
    elseif($i===3)
    {
        if(strlen($tmpi[3][0])>5)
        {
            $z = explode(':',$tmpi[3][0]);
            $for_in = ceil($z[1]/1024/1024);
            $for_out = ceil($tmpi[3][8]/1024/1024);
        }
        elseif(strlen($tmpi[3][0])=='5')
        {
            $for_in = ceil($tmpi[3][1]/1024/1024);
            $for_out = ceil($tmpi[3][9]/1024/1024);
        }
    }
}

$ctime = date('Y-m-d H:i:s');
mysql_query("INSERT into dc_sys_stat (os_info,cpu_mod,cpu_num,cpu_core_num,mem_total,uptime,load_average,cpu_usage,mem_use,fir_in,fir_out,sec_in,sec_out,thi_in,thi_out,for_in,for_out,ctime)
        values ('$os[0]','$cpu_mod[0]','$cpu_num[0]','$core_num[0]','$mem_sum[0]','$uptime[0]','$load[0]',$cpu_use[0],$mem_use[0],'$fir_in','$fir_out','$sec_in','$sec_out','$thi_in','$thi_out','$for_in','$for_out','$ctime')",$db);
// mysql_query("INSERT into show_sys (os_info,cpu_mod,cpu_num,cpu_core_num,mem_total,uptime,load_average,cpu_usage,mem_use,fir_in,fir_out,sec_in,sec_out,thi_in,thi_out,for_in,for_out,ctime)
//      values ('$os[0]','$cpu_mod[0]','$cpu_num[0]','$core_num[0]','$mem_sum[0]','$uptime[0]','$load[0]',$cpu_use[0],$mem_use[0],'$fir_in','$fir_out','$sec_in','$sec_out','$thi_in','$thi_out','$for_in','$for_out','$ctime')",$db);

$aStatTmp=$time_tmp=$os=$cpu_mod=$cpu_num=$core_num=$mem_sum=$uptime=$load=$cpu_use=$mem_use=array();
$fir_in=$fir_out=$sec_in=$sec_out=$thi_in=$thi_out=$for_in=$for_out=0;
// $db->close();
mysql_close($db);

?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值