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);
?>