package com.starfast.common.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.LineNumberReader; /** * @author DUCHONG * @since 2018-05-04 10:57 **/ public class LinuxCmdUtils { static Logger logger= LoggerFactory.getLogger(LinuxCmdUtils.class); public static boolean executeLinuxCmd(String cmd) { boolean result=false; System.out.println("got cmd : " + cmd); Runtime run = Runtime.getRuntime(); //InputStream in=null; try { Process process = run.exec(cmd); //执行结果 0 表示正常退出 int exeResult=process.waitFor(); if(exeResult==0){ System.out.println("执行成功"); result=true; } } catch (Exception e) { logger.error("LinuxCmdUtils.executeLinuxCmd error",e); } return result; } /** * 获取linux命令执行的结果,cat 之类 * @param cmd * @return */ public static 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) { System.err.println("IOException " + e.getMessage()); } return result; } /** * grep 类的shell命令 * @param cmdStr * @return */ public static String getGrepCmdReturn(String cmdStr){ String[] cmd = new String[3]; cmd[0]="/bin/sh"; cmd[1]="-c"; cmd[2]=cmdStr; //得到Java进程的相关Runtime运行对象 Runtime runtime = Runtime.getRuntime(); StringBuffer stringBuffer=null; try { Process process = runtime.exec(cmd); BufferedReader bufferReader = new BufferedReader( new InputStreamReader(process.getInputStream())); stringBuffer= new StringBuffer(); String temp = null; while ((temp = bufferReader.readLine()) != null) { stringBuffer.append(temp); } } catch (IOException e) { e.printStackTrace(); } return stringBuffer.toString(); } public static void main(String[] args) { System.out.println(LinuxCmdUtils.getGrepCmdReturn("dmidecode -s system-serial-number|grep -v "#"")); } }