Advertisement
Guest User

Untitled

a guest
Oct 10th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.57 KB | None | 0 0
  1. /*
  2. * SSHManager
  3. *
  4. * @author cabbott
  5. * @version 1.0
  6. */
  7.  
  8.  
  9. import com.jcraft.jsch.*;
  10. import java.io.IOException;
  11. import java.io.InputStream;
  12. import java.util.logging.Level;
  13. import java.util.logging.Logger;
  14.  
  15. public class SSHManager {
  16. private static final Logger LOGGER = Logger.getLogger(SSHManager.class.getName());
  17. private JSch jschSSHChannel;
  18. private String strUserName;
  19. private String strConnectionIP;
  20. private int intConnectionPort;
  21. private String strPassword;
  22. private Session sesConnection;
  23. private int intTimeOut;
  24.  
  25. private void doCommonConstructorActions(String userName, String password, String connectionIP, String knownHostsFileName) {
  26. jschSSHChannel = new JSch();
  27.  
  28. try {
  29. jschSSHChannel.setKnownHosts(knownHostsFileName);
  30. } catch (JSchException jschX) {
  31. logError(jschX.getMessage());
  32. }
  33.  
  34. strUserName = userName;
  35. strPassword = password;
  36. strConnectionIP = connectionIP;
  37. }
  38.  
  39. public SSHManager(String userName, String password, String connectionIP, String knownHostsFileName) {
  40. doCommonConstructorActions(userName, password, connectionIP, knownHostsFileName);
  41. intConnectionPort = 22;
  42. intTimeOut = 60000;
  43. }
  44.  
  45. public SSHManager(String userName, String password, String connectionIP, String knownHostsFileName, int connectionPort) {
  46. doCommonConstructorActions(userName, password, connectionIP, knownHostsFileName);
  47. intConnectionPort = connectionPort;
  48. intTimeOut = 60000;
  49. }
  50.  
  51. public SSHManager(String userName, String password, String connectionIP, String knownHostsFileName, int connectionPort, int timeOutMilliseconds) {
  52. doCommonConstructorActions(userName, password, connectionIP, knownHostsFileName);
  53. intConnectionPort = connectionPort;
  54. intTimeOut = timeOutMilliseconds;
  55. }
  56.  
  57. public String connect() {
  58. String errorMessage = null;
  59.  
  60. try {
  61. sesConnection = jschSSHChannel.getSession(strUserName, strConnectionIP, intConnectionPort);
  62. sesConnection.setPassword(strPassword);
  63. // UNCOMMENT THIS FOR TESTING PURPOSES, BUT DO NOT USE IN PRODUCTION
  64. sesConnection.setConfig("StrictHostKeyChecking", "no");
  65. sesConnection.connect(intTimeOut);
  66. } catch (JSchException jschX) {
  67. errorMessage = jschX.getMessage();
  68. }
  69.  
  70. return errorMessage;
  71. }
  72.  
  73. private String logError(String errorMessage) {
  74. if (errorMessage != null) {
  75. LOGGER.log(Level.SEVERE, "{0}:{1} - {2}", new Object[] { strConnectionIP, intConnectionPort, errorMessage });
  76. }
  77.  
  78. return errorMessage;
  79. }
  80.  
  81. private String logWarning(String warnMessage) {
  82. if (warnMessage != null) {
  83. LOGGER.log(Level.WARNING, "{0}:{1} - {2}", new Object[] { strConnectionIP, intConnectionPort, warnMessage });
  84. }
  85.  
  86. return warnMessage;
  87. }
  88.  
  89. public String sendCommand(String command) {
  90. StringBuilder outputBuffer = new StringBuilder();
  91.  
  92. try {
  93. Channel channel = sesConnection.openChannel("exec");
  94. ((ChannelExec) channel).setCommand(command);
  95. InputStream commandOutput = channel.getInputStream();
  96. channel.connect();
  97. int readByte = commandOutput.read();
  98.  
  99. while (readByte != 0xffffffff) {
  100. outputBuffer.append((char) readByte);
  101. readByte = commandOutput.read();
  102. }
  103.  
  104. channel.disconnect();
  105. } catch (IOException ioX) {
  106. logWarning(ioX.getMessage());
  107. return null;
  108. } catch (JSchException jschX) {
  109. logWarning(jschX.getMessage());
  110. return null;
  111. }
  112.  
  113. return outputBuffer.toString();
  114. }
  115.  
  116. public void close() {
  117. sesConnection.disconnect();
  118. }
  119.  
  120. }
  121.  
  122. public class MainClass {
  123. public static void main (String args[])
  124. {
  125.  
  126. String DIR = "ROOT_ADDRESS";
  127. String command1= "cd " + DIR;
  128. String command2 = "java -jar JAR_FILE";
  129. String command = command1 + " && " + command2;
  130.  
  131. //System.out.println(command2);
  132. String userName = "USERNAME";
  133. String password = "PASSWORD";
  134. String connectionIP = "127.0.0.1";
  135. SSHManager instance = new SSHManager(userName, password, connectionIP, "");
  136. String errorMessage = instance.connect();
  137.  
  138.  
  139. if(errorMessage != null)
  140. {
  141. System.out.println(errorMessage);
  142. System.exit(1);
  143. }
  144.  
  145. System.out.println(command);
  146. String result = instance.sendCommand(command);
  147.  
  148. instance.close();
  149.  
  150. System.out.println(result);
  151. }
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement