//=====================================查询系统已经运行的 时间 的实现================ /** * 获取linux命令执行的结果,cat 之类 * @param cmd * @return */ public String getCmdResult(String cmd) { String result = ""; try { Process process = Runtime.getRuntime().exec(cmd); InputStreamReader ir = new InputStreamReader(process.getInputStream()); LineNumberReader input = new LineNumberReader(ir); String line; while ((line = input.readLine()) != null){ result=line; } } catch (java.io.IOException e) { log.info("==============<getCmdResult-error>=============="+e); System.err.println("IOException " + e.getMessage()); } return result; } /** * 返回运行时间:天数+小时 * @return */ public String getUptime(String str){ String time=null; if(str.contains(",")){ String [] strArr=str.split(","); if(strArr.length>2){ int hms=0; String day=""; int hours=0; if(str.contains("days")){ //截取到天 day=strArr[0].substring(strArr[0].indexOf("up")+2,strArr[0].indexOf("days")).trim(); //时分秒的秒数 hms=Integer.parseInt(getHms(strArr[1].replace("min","").trim())); //将秒数转换成小时数 hours = (hms % ( 60 * 60 * 24)) / (60 * 60); }else if(str.contains("day")){ //截取到天 day=strArr[0].substring(strArr[0].indexOf("up")+2,strArr[0].indexOf("day")).trim(); //时分秒的秒数 hms=Integer.parseInt(getHms(strArr[1].replace("min","").trim())); //将秒数转换成小时数 hours = (hms % ( 60 * 60 * 24)) / (60 * 60); }else{ String hmsStr=strArr[0].substring(strArr[0].indexOf("up")+2); hms=Integer.parseInt(getHms(hmsStr.replace("min","").trim())); //将秒数转换成小时数 hours = (hms % ( 60 * 60 * 24)) / (60 * 60); } time= day+","+hours; log.info("==============<getUptime-consoleSearch>==============time:"+time); } } return time; } /** * 返回运行时间的秒数 * @return */ public String getUptimeSecond(String str){ String time=null; if(str.contains(",")){ String [] strArr=str.split(","); if(strArr.length>2){ int hms=0; int days=0; if(str.contains("days")){ //截取到天 String day=strArr[0].substring(strArr[0].indexOf("up")+2,strArr[0].indexOf("days")).trim(); //天的秒数 days=Integer.parseInt(day) * 24 * 3600; //时分秒的秒数 hms=Integer.parseInt(getHms(strArr[1].replace("min","").trim())); }else if(str.contains("day")){ //截取到天 String day=strArr[0].substring(strArr[0].indexOf("up")+2,strArr[0].indexOf("day")).trim(); //天的秒数 days=Integer.parseInt(day) * 24 * 3600; //时分秒的秒数 hms=Integer.parseInt(getHms(strArr[1].replace("min","").trim())); }else{ String hmsStr=strArr[0].substring(strArr[0].indexOf("up")+2); hms=Integer.parseInt(getHms(hmsStr.replace("min","").trim())); } Integer totalTime=days+hms; time=totalTime.toString(); } } return time; } /** * 获取中间字段的秒数 * @param str * @return */ public String getHms(String str){ String result=null; Integer hms=0; if(str.contains(":")){ String [] hmsArr=str.split("\\:"); int length=hmsArr.length; switch (length){ //只有秒 case 1:hms+=Integer.parseInt(hmsArr[0]); break; //时分 case 2:hms+=(Integer.parseInt(hmsArr[0]) * 3600 + Integer.parseInt(hmsArr[1]) *60); break; //时分秒 case 3:hms+=(Integer.parseInt(hmsArr[0]) * 3600 + Integer.parseInt(hmsArr[1]) *60 +Integer.parseInt(hmsArr[2])); break; } } else{ //不包含: 只能是分 hms+=Integer.parseInt(str) * 60; } if(hms>0){ result=hms.toString(); } return result; } /** * 获取运行时间 * @return */ @Override public String getRouterUptime(){ return getUptime(getCmdResult("uptime")); } |
|
来自: 樱花梦_张艺馨 > 《Java操作Linux系统》