⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ippbx_info.inc.php

📁 程控电话交换机的状态检测的接口模块函数。
💻 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 + -