1.远程执行导入dmp命令
public void linuxExecute(){
//用户名
String username="";
//密码
String password="";
//创建连接ip,端口(port)
Connection conn =new Connection("IP",port);
try{
//连接
conn.connect();
//验证用户名密码是否正确
boolean UserPwd =conn.authenticateWithPassword(username,password);
if(UserPwd){
//创建session会话
Session session =conn.openSession();
//建立虚拟终端
session.requestPTY("bash");
//打开一个shell
session.startShell();
//将屏幕上的文字全部打印出来
InputStream stdOut=new StreamGobbler(session,getStdout());
BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdOut));
//准备输入命令
try(PrintWriter out =new PrintWriter(session.getStdin())){
//输入待执行命令
out.println("imp 数据库用户名/密码@实例名 file=文件路径 full=y ignore=y; ");
out.println("exit");
}
//等待,除非1.连接关闭,2.输入数据传送完毕 ,3.进程状态为退出
session.waitForCondition(ChannelCondition.CLOSED | ChannelCondition.EOF |
ChannelCondition.EXIT_STATUS);
//读取数据进入死循环
while (true){
String line = stdoutReader.readLine();
if (line == null) {
break;
}
System.out.println(line);
}
}catch (Exception e) {
e.printStackTrace();
} finally {
conn.close();
}
}
}