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;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();
}
}
}