打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
java查询Linux系统已经运行的时间

//=====================================查询系统已经运行的 时间  的实现================

/**

     * 获取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"));

    }

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
String,Integer,int之间转换
关于日期格式转换类
电子表头数据读取并转换
java中String类型转换方法
public.js 银行通用方法
Java POI 解析word文档
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服