* 取得linux系统下的cpu、内存信息
*
* */
public final class LinuxSystemTool
{
/**
* get memory by used info
*
* @return int[] result
* result.length==4;int[0]=MemTotal;int[1]=MemFree;int[2]=SwapTotal;int[3]=SwapFree;
* @throws IOException
* @throws InterruptedException
*/
public static int [] getMemInfo() throws IOException, InterruptedException
{
File file = new File( "/proc/meminfo" );
BufferedReader br = new BufferedReader( new InputStreamReader(
new FileInputStream(file)));
int [] result = new int [ 4 ];
String str = null ;
StringTokenizer token = null ;
while ((str = br.readLine()) != null )
{
token = new StringTokenizer(str);
if (!token.hasMoreTokens())
continue ;
str = token.nextToken();
if (!token.hasMoreTokens())
continue ;
if (str.equalsIgnoreCase( "MemTotal:" ))
result[0 ] = Integer.parseInt(token.nextToken());
else if (str.equalsIgnoreCase( "MemFree:" ))
result[1 ] = Integer.parseInt(token.nextToken());
else if (str.equalsIgnoreCase( "SwapTotal:" ))
result[2 ] = Integer.parseInt(token.nextToken());
else if (str.equalsIgnoreCase( "SwapFree:" ))
result[3 ] = Integer.parseInt(token.nextToken());
}
return result;
}
/**
* get memory by used info
*
* @return float efficiency
* @throws IOException
* @throws InterruptedException
*/
public static float getCpuInfo() throws IOException, InterruptedException
{
File file = new File( "/proc/stat" );
BufferedReader br = new BufferedReader( new InputStreamReader(
new FileInputStream(file)));
StringTokenizer token = new StringTokenizer(br.readLine());
token.nextToken();
int user1 = Integer.parseInt(token.nextToken());
int nice1 = Integer.parseInt(token.nextToken());
int sys1 = Integer.parseInt(token.nextToken());
int idle1 = Integer.parseInt(token.nextToken());
Thread.sleep(1000 );
br = new BufferedReader(
new InputStreamReader( new FileInputStream(file)));
token = new StringTokenizer(br.readLine());
token.nextToken();
int user2 = Integer.parseInt(token.nextToken());
int nice2 = Integer.parseInt(token.nextToken());
int sys2 = Integer.parseInt(token.nextToken());
int idle2 = Integer.parseInt(token.nextToken());
return ( float )((user2 + sys2 + nice2) - (user1 + sys1 + nice1)) / ( float )((user2 + nice2 + sys2 + idle2) - (user1 + nice1 + sys1 + idle1));
}
}
$ cat /proc/meminfo total: used: free: shared: buffers: cached: Mem: 1057009664 851668992 205340672 0 67616768 367820800 Swap: 2146787328 164429824 1982357504 MemTotal: 1032236 kB MemFree: 200528 kB MemShared: 0 kB
cpu0 256279030 0 11832528 1637168262
temperature: 68C
CREATE TABLE `warnlist` ( `Id` bigint (20) NOT NULL auto_increment, `warnleave` tinyint(2) NOT NULL default '0' ,//告警级别:告警的严重程度 `fromguy` varchar (20) NOT NULL ,//属于哪个用户哪个组织的告警 `warncontent` varchar (100) NOT NULL ,//告警内容,比如cpu使用率超过80% `aviliablevalue` varchar (12) default NULL ,//允许值 比如85% `warnvalue` varchar (12) default NULL ,//告警值 80 `warntime` datetime NOT NULL ,//告警时间 `stackinfo` varchar (255) default NULL ,//异常的堆栈信息 `dealwith` tinyint(2) NOT NULL default '0' ,//处理结果 `version` int (11) default NULL ,//version `organizerID` varchar (20) default NULL ,//组织id `des` varchar (255) default NULL , PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
< response > < cpuUsed > 67 </ cpuUsed > < cpuTemp > 76 < cpuTemp > < Memory > 1023422 </ Memory > < freeMemory > 43244 </ freeMemory > < wannlist > < warnid > 2 </ warnid > < warncontent > 系统存储空间不足 </ warncontent > < fromguy > kakaluyi </ fromguy > .............. </ wanrlist > < warnlist > < warnid > 3 </ warnid > < warncontent > cpu温度过高 </ warncontent > < fromguy > 系统 </ fromguy > < orgid > 系统 </ orgid > < warnvalue > 78 </ warnvalue > ............. </ warnlist > ........ </ response >
var cpuUsed = req .responseXML.getElementsByTagName('cpuUsed')[0].firstChild.nodeValue;
var totalMemory = req .responseXML.getElementsByTagName('totalMemory')[0].firstChild.nodeValue;
var freeMemory = req .responseXML.getElementsByTagName('freeMemory')[0].firstChild.nodeValue;
var cpuTemp = req .responseXML.getElementsByTagName('cpuTemp')[0].firstChild.nodeValue;
$('cpuUsed').innerHTML = cpuUsed ;
$('totalMemory').innerHTML = totalMemory ;
$('freeMemory').innerHTML = freeMemory ;
$('cpuTemp').innerHTML = cpuTemp ;
//jsp
< tr >
< td class = "label" width = "20%" >
</ td > < td class = "text" > < font color = "#FF0000" size = "+2" > < label id = "cpuUsed" > </ label > </ font > < 告警预定阀值: 80% > </ td > </ tr > .........
var length=req.responseXML.getElementsByTagName( 'warnlist' ).length;
if (length>0)
{
var trlength=document.getElementsByTagName( 'table' )[4].childNodes[0].childNodes.length;
if (trlength+length-1>50) //如果大于50条,则查找告警列表的table,得到
告警信息的子节点,然后删除多余的最早的告警信息
{
var tbody=document.getElementsByTagName( 'table' )[4].childNodes[0];
for ( var i=1;i<trlength+length-50;i++)
{
var tr=tbody.childNodes[i];
tr.parentNode.removeChild(tr);
}
for ( var i=0;i<length;i++)
{
var onewarnlist=req.responseXML.getElementsByTagName( 'warnlist' )[i].childNodes;
if (onewarnlist[0].firstChild.nodeValue==0)
{
var leave= "企业级告警" ;
}
else {
var leave= "运营商级告警" ;
}
var from=onewarnlist[1].firstChild.nodeValue;
var warncontent=onewarnlist[2].firstChild.nodeValue;
var aviliablevalue=onewarnlist[3].firstChild.nodeValue;
var warnvalue=onewarnlist[4].firstChild.nodeValue;
var warntime=onewarnlist[5].firstChild.nodeValue;
var id=onewarnlist[8].firstChild.nodeValue;
if (onewarnlist[6].firstChild.nodeValue==0)
{
var dealwith= "未处理" ;
}
else {
var dealwith= "<font color='red'>已处理</font>" ;
}
var table=document.getElementById( 'warntable' );
var tr=document.createElement( 'tr' );
if (x%2==1)
{
tr.style.backgroundColor="#BFD3F9"
}
else {
tr.style.backgroundColor="#FBFCEB"
}
x++;
table.appendChild(tr);
var td=document.createElement( 'td' );
td.className ='listText' ;
td.innerHTML =x;
tr.appendChild(td);
var td1=document.createElement( 'td' );
td1.className ='listText' ;
td1.innerHTML = leave;
tr.appendChild(td1);
var td2=document.createElement( 'td' );
td2.className ='listText' ;
td2.innerHTML = from;
tr.appendChild(td2);
var td3=document.createElement( 'td' );
td3.className ='listText' ;
td3.innerHTML = warncontent;
tr.appendChild(td3);6
var td4=document.createElement( 'td' );
td4.className ='listText' ;
td4.innerHTML = aviliablevalue;
tr.appendChild(td4);
var td5=document.createElement( 'td' );
td5.className ='listText' ;
td5.innerHTML = '<font color="#FF0000">' +warnvalue+ '</font>' ;
tr.appendChild(td5);
var td6=document.createElement( 'td' );
td6.className ='listText' ;
td6.innerHTML = warntime;
tr.appendChild(td6);
var td7=document.createElement( 'td' );
td7.className ='listText' ;
td7.innerHTML = dealwith;
tr.appendChild(td7);
var td8=document.createElement( 'td' );
td8.className ='listText' ;
td8.innerHTML = id;
tr.appendChild(td8);
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有