yxixi 发表于 2017-3-2 09:06:03

java web程序SSH到服务器执行命令

  jar包:j2ssh-core-0.2.9.jar
  Maven pom.xml



<dependency>
<groupId>sshtools</groupId>
<artifactId>j2ssh-core</artifactId>
<version>0.2.9</version>
</dependency>
  登陆主机,查询日志:



private String search(String host,String command){
SshClient client=new SshClient();
String queryResult = "";
try{
client.connect(host,22,new IgnoreHostKeyVerification());
//设置用户名和密码
PasswordAuthenticationClient pwd = new PasswordAuthenticationClient();
pwd.setUsername("***");
pwd.setPassword("***");
int result=client.authenticate(pwd);
if(result==AuthenticationProtocolState.COMPLETE){//如果连接完成
logger_.info("==============="+host);
List<SftpFile> list = client.openSftpClient().ls("/home/backtest/jetty9_serv/jetty-distribution-9.2.10.v20150310/webapp_BackTestYield/log");
for (SftpFile f : list) {
if(f.getFilename().equals("log.txt")){
SessionChannelClient session = client.openSessionChannel();   
if (session.startShell()){
ChannelOutputStream writer = session.getOutputStream();   
writer.write(command.getBytes());   
writer.flush();                        
writer.write("exit\n".getBytes());   
writer.flush();   
BufferedReader in = new BufferedReader(new InputStreamReader(session.getInputStream()));
BufferedReader err= new BufferedReader(new InputStreamReader(session.getStderrInputStream()));
String line;
logger_.info("------------------------");   
while ((line = in.readLine()) != null){   
queryResult = queryResult + host + " : "+line +"\r\n";
}   
while ((line = err.readLine()) != null){   
logger_.info(line);   
}   
}
}
}
}
}catch(IOException e){
e.printStackTrace();
}
return queryResult;
}
页: [1]
查看完整版本: java web程序SSH到服务器执行命令