搜档网
当前位置:搜档网 › java程序控制linux

java程序控制linux

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.util.Scanner;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
//import com.uniontrip.fortress.entity.Operator;

public class ContrlLinux {

private Reader reader;
private Writer writer;
private InputStream is;
private OutputStream os;
private JSch jsch;
private Session sess;
private Channel channel;
private boolean hasParse;
private int msgNum;
private char[] msgBuffer = new char[4 * 1024];
//生成的原语数组
String [] strs=new String[31];


public int connectServer(String user, String pwd, String host, int port) {

try {
jsch = new JSch();
sess = jsch.getSession(user, host, port);
sess.setPassword(pwd);
sess.setConfig("StrictHostKeyChecking", "no");

sess.connect();

channel = sess.openChannel("shell");
is = channel.getInputStream();
os = channel.getOutputStream();
reader = new BufferedReader(new InputStreamReader(is));
writer = new BufferedWriter(new OutputStreamWriter(os));

channel.connect();
// System.out.println(channel.isConnected());

} catch (Exception e) {
if (jsch != null)
jsch = null;
if (sess != null && sess.isConnected())
sess.disconnect();
if (channel != null && channel.isConnected()) {
channel.disconnect();
}
return 1;
}
return 0;
}

public int doPs(String reg) {
if (sess == null || !sess.isConnected()) {
System.out.println("请先连接服务。。。");
return 1;
}
try {
if (reg == null) {
writer.write("date\n");
} else {
writer.write(reg + "\n");
}
writer.flush();
hasParse = false;

} catch (Exception e) {
System.out.println("ps出错。。。");
return 1;
}
return 0;
}

public void getOperatorList(){
//如果没有解析的话,则解析输入
try{
//System.out.println(hasParse);//注意这里打印的false却进入了 else
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(!hasParse)
if(reader.ready()){
msgBuffer=new char[4 * 1024];
msgNum=reader.read(msgBuffer);
for(int i=0;iSystem.out.print(msgBuffer[i]);

}
System.out.println();
//operatorList=parseResult();
hasParse=true;
}else{
System.out.println("连接服务器超时");
}
}catch(IOException e){
//operatorList=null;
//errorCode=3;
//errorMessage="服务器未返回正确结果";
System.out.println("服务器未返回正确结果")
}

}


public static void main(String[] arg){
ContrlLinux cl=new ContrlLinu

x();
System.out.println(cl.connectServer("root","wanglei","192.168.128.128", 22));
Scanner cn=new Scanner(System.in);

//System.out.println(pstest.doPs("ll"));
cl.getOperatorList();
String order;
while(true){
order =cn.nextLine();
System.out.println("执行的命令是:"+order);
cl.doPs(order);
cl.getOperatorList();
}


}

}

相关主题