📄 ippbx_info.inc.php
字号:
<?php /* *Function was counted Cpu used rate */ function getCPUUsed(){ $retrun_array=array(); /*提取/proc/stat目录下的输出信息到$retrun_array*/ exec("cat /proc/stat | awk '/cpu /{print $0}'",$retrun_array); /* 将retrun_array[0]中的信息cpu 150663 0 91848 34685691以空格分解为字符串存储*/ $save= explode(" ",$retrun_array[0]); //save[0]=cpu $save_user=$save[2]+$save[3];//save[2]=150663;save[3]=0 $save_system=$save[4]; //save[4]=91848 $save_total=$save[2]+$save[3]+$save[4]+$save[5]; //34928202 cpu的总主频 unset($retrun_array); //清空数组 exec("sleep 1s"); //休息一秒(计算Cpu利用率的时间间隔,即以一秒为单位计算Cpu的利用率 ) /*重复之前计算*/ exec("cat /proc/stat | awk '/cpu /{print $0}'",$retrun_array); $cpu= explode(" ",$retrun_array[0]); //cpu 151070 0 92170 34844652 $cpu_user=$cpu[2]+$cpu[3]; $cpu_system=$cpu[4]; $cpu_total=$cpu[2]+$cpu[3]+$cpu[4]+$cpu[5]; /*两次计算的差值*/ $delta_user=$cpu_user - $save_user; $delta_system= $cpu_system - $save_system; $delta_total=$cpu_total - $save_total; $user=$delta_user*100/$delta_total; //1秒内用户态Cpu的使用率 $system=$delta_system*100/$delta_total; //1秒内内核态Cpu的使用率 /*取整处理,1秒内Cpu的总使用率*/ $res=round($user+$system); return $res; } /* *Function was counted Memory used rate */ function getMemoryused(){ if (FALSE === ($str = @file("/proc/meminfo"))){ echo "return FALSE"; return FALSE; } //如果索取内存的使用信息出错则返回 $str = implode("", $str); preg_match_all("/MemTotal\s{0,}\:+\s{0,}([\d\.]+).+?MemFree\s{0,}\:+\s{0,}([\d\.]+).+?Cached\s{0,}\:+\s{0,}([\d\.]+)/s", $str, $buf);//提取MemTotal、MemFree、Cached字段后面的对应信息 $res['memTotal'] =$buf[1][0]/1024; $res['memFree'] =$buf[2][0]/1024; $res['Cached'] =$buf[3][0]/1024; $res['memUsed'] = ($res['memTotal']-$res['memFree']-$res['Cached']); $res['memPercent'] = (floatval($res['memTotal'])!=0)?$res['memUsed']/$res['memTotal']*100:0; $res['memPercent']=round($res['memPercent']); return $res['memPercent']; } /* *Function was counted Disk used rate */ function getDiskused(){ /*返回磁盘的总空间,disk_total_space("/")返回的为根目录下的磁盘总空间,即为总的硬盘大小*/ $res['diskspaceTotal']=(@disk_total_space(".")/(1024*1024)); /*返回磁盘空闲的空间,disk_free_space("/"),返回磁盘总剩余空间*/ $res['diskspaceFree']=(@disk_free_space(".")/(1024*1024)); /*算出硬盘使用率*/ $res['diskspaceprent']=(floatval($res['diskspaceTotal'])!=0)?($res['diskspaceTotal']-$res['diskspaceFree'])/$res['diskspaceTotal']*100:0; $res['diskspaceprent']=round($res['diskspaceprent']); return $res['diskspaceprent']; } /* *Function was judged Network state and bandwidth */ function getNetStatus(){ /* *判断网络带宽 */ function judged_base($str){ if(substr($str,0,2)==10) //判断是否是10M带宽 $eth_base=10; else if(substr($str,0,3)==100) //判断是否是100M带宽 $eth_base=100; else $eth_base=false; return $eth_base; } /* *判断网络状态 */ $retrun_array=array(); exec("/opt/avx/bin/mii-tool | awk '{print $0}'",$retrun_array); //执行mii-tool并取得输出信息到$retrun_array $save_eth0= explode(" ",$retrun_array[0]); //将数组中的长字符串分解为以空格隔开的短字符串 $eth0_base=judged_base($save_eth0[3]); /*判断eth0的状态*/ if($eth0_base==false && $save_eth0[5]==NULL ){ $eth0_state=0; $eth0_base="link_faile"; } else $eth0_state=1; $save_eth1= explode(" ",$retrun_array[1]); $eth1_base=judged_base($save_eth1[3]); /*判断eth1的状态*/ if($eth1_base==false && $save_eth1[5]==NULL ){ $eth1_base="link_faile"; $eth1_state=0; } else $eth1_state=1; /*返回格式array[0]=1/0:10/link_faile,返回格式array[1]=1/0:10/link_faile(“/”表示或的关系)*/ return $ret=array($eth0_state .":".$eth0_base,$eth1_state .":".$eth1_base ); } ?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -