读书人

java 操作ssh下令

发布时间: 2013-03-06 16:20:31 作者: rapoo

java 操作ssh命令
import java.io.InputStream;import com.jcraft.jsch.Channel;import com.jcraft.jsch.ChannelExec;import com.jcraft.jsch.JSch;import com.jcraft.jsch.Session;import com.jcraft.jsch.UIKeyboardInteractive;import com.jcraft.jsch.UserInfo;public class Shell1 {public static void main(String[] args) {String str = Shell1.sshExecute("192.168.9.52", "hadoop", "hadoop", "ls");System.out.println(str);}public static abstract class MyUserInfo implements UserInfo,UIKeyboardInteractive {public String getPassword() {return null;}public boolean promptYesNo(String str) {return false;}public String getPassphrase() {return null;}public boolean promptPassphrase(String message) {return false;}public boolean promptPassword(String message) {return false;}public void showMessage(String message) {}public String[] promptKeyboardInteractive(String destination,String name, String instruction, String[] prompt, boolean[] echo) {return null;}}public static String sshExecute(String host, String user, String pwd,String command) {// ps -ef|grep tomcat|grep -v grep|awk '{print $2}'StringBuffer sb = new StringBuffer();try {JSch jsch = new JSch();Session session = jsch.getSession(user, host, 22);session.setPassword(pwd);UserInfo ui = new MyUserInfo() {public void showMessage(String message) {}public boolean promptYesNo(String message) {return true;}};session.setUserInfo(ui);session.connect();Channel channel = session.openChannel("exec");((ChannelExec) channel).setCommand(command);InputStream in = channel.getInputStream();channel.connect();int nextChar;while (true) {while ((nextChar = in.read()) != -1) {sb.append((char) nextChar);}if (channel.isClosed()) {System.out.println("exit-status: "+ channel.getExitStatus());break;}try {Thread.sleep(1000);} catch (Exception ee) {}}channel.disconnect();session.disconnect();} catch (Exception e) {e.printStackTrace();}return sb.toString();}}

?

读书人网 >编程

热点推荐