IPUtils.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. package com.huimv.huimvfarmnetip.utils;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.springframework.stereotype.Component;
  4. import java.io.BufferedReader;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7. /**
  8. * @Project : huimv.shiwan
  9. * @Package : com.huimv.biosafety.uface.controller
  10. * @Description : TODO
  11. * @Version : 1.0
  12. * @Author : ZhuoNing
  13. * @Create : 2020-12-25
  14. **/
  15. @Component
  16. @Slf4j
  17. public class IPUtils {
  18. /**
  19. * 执行shell脚本命令
  20. * @param file
  21. */
  22. public void doExec(String file)
  23. {
  24. try
  25. {
  26. Runtime.getRuntime().exec("bash " + file);
  27. log.info("bash " + file);
  28. }
  29. catch (IOException e)
  30. {
  31. log.warn("Exec " + file + " IOException:", e);
  32. }
  33. }
  34. /**
  35. * 执行一个Shell脚本
  36. */
  37. public boolean execute(String shellFile)
  38. {
  39. //脚本文件为NULL或空值
  40. if (null == shellFile || shellFile.equals(""))
  41. {
  42. log.warn("ShellCommand shellFile is null.");
  43. return false;
  44. }
  45. if (log.isDebugEnabled())
  46. {
  47. log.debug("bash " + shellFile);
  48. }
  49. try
  50. {
  51. Process process = Runtime.getRuntime().exec("bash " + shellFile);
  52. int iretCode = process.waitFor();
  53. try
  54. {
  55. if (iretCode != 0)
  56. {
  57. BufferedReader br = new BufferedReader(
  58. new InputStreamReader(process.getErrorStream()));
  59. StringBuilder errorDesc = new StringBuilder();
  60. for (String str = br.readLine(); str != null; str = br
  61. .readLine())
  62. {
  63. errorDesc.append(str);
  64. }
  65. log.error("execute shell " + shellFile + " failed: "
  66. + errorDesc);
  67. //zkf35483 新增关闭流操作
  68. br.close();
  69. }
  70. else
  71. {
  72. return true;
  73. }
  74. }
  75. catch (IOException e)
  76. {
  77. log.error("IOException:", e);
  78. }
  79. finally
  80. {
  81. process.getErrorStream().close();
  82. process.getInputStream().close();
  83. process.getOutputStream().close();
  84. }
  85. }
  86. catch (Exception e)
  87. {
  88. log.error("Execute " + shellFile + " exception:", e);
  89. }
  90. return false;
  91. }
  92. public String run(String file,String ip){
  93. String[] shellFile = new String[]{"sh",file,ip};
  94. try {
  95. Process ps = Runtime.getRuntime().exec(shellFile);
  96. ps.waitFor();
  97. BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()));
  98. StringBuffer sb = new StringBuffer();
  99. String line;
  100. while ((line = br.readLine()) != null) {
  101. sb.append(line).append("\n");
  102. }
  103. String result = sb.toString();
  104. System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>"+result);
  105. return result;
  106. }
  107. catch (Exception e) {
  108. e.printStackTrace();
  109. return null;
  110. }
  111. }
  112. public String run_old(String shellFile){
  113. try {
  114. Process ps = Runtime.getRuntime().exec(shellFile);
  115. ps.waitFor();
  116. BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()));
  117. StringBuffer sb = new StringBuffer();
  118. String line;
  119. while ((line = br.readLine()) != null) {
  120. sb.append(line).append("\n");
  121. }
  122. String result = sb.toString();
  123. // System.out.println(result);
  124. return result;
  125. }
  126. catch (Exception e) {
  127. e.printStackTrace();
  128. return null;
  129. }
  130. }
  131. }