Re: [JSch-users] Oracle apps through JSch
Status: Alpha
Brought to you by:
ymnk
|
From: Leonardo K. S. <sh...@gm...> - 2015-02-26 11:12:45
|
Hi Ulises Here's how I do it. Use https://github.com/ronniedong/Expect-for-Java (it's just a single class) import org.apache.log4j.Level; import com.jcraft.jsch.Channel; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; public class SQLPlusAutomation { public static void main(String[] args) throws Exception { String rootPassword = "..."; JSch jsch = null; Session session = null; jsch = new JSch(); session = jsch.getSession("leoks", "localhost"); session.setPassword(rootPassword); session.setConfig("StrictHostKeyChecking", "no"); session.setConfig("PreferredAuthentications", "publickey,keyboard-interactive,password"); session.connect(10 * 1000); Channel channel = session.openChannel("shell"); Expect expect = new Expect(channel.getInputStream(), channel.getOutputStream()); expect.setDefault_timeout(2); expect.turnOffLogging(); expect.forwardInputStreamTo(System.out); channel.connect(); expect.expect("password for leoks:"); expect.send("sudo su - oracle\n"); expect.expect("\\$"); expect.send(rootPassword+"\n"); expect.expect("\\$"); expect.send("source ./product/11.2.0/xe/bin/oracle_env.sh\n"); expect.expect("SQL>"); expect.send("sqlplus / as sysdba\n"); expect.expect("SQL>"); expect.send("select sysdate from dual;\n"); expect.expect("\\$"); expect.send("quit;\n"); expect.expect("#"); expect.send("exit\n"); expect.expect("\\$"); expect.send("exit\n"); expect.expectEOF(); expect.close(); if (session != null) { session.disconnect(); } } } here's my output Last login: Thu Feb 26 08:07:52 2015 from localhost [leoks@myhost ~]$ sudo su - oracle [sudo] password for leoks: -bash-4.1$ source ./product/11.2.0/xe/bin/oracle_env.sh -bash-4.1$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.2.0 Production on Thu Feb 26 08:08:35 2015 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production SQL> select sysdate from dual; SYSDATE ------------------ 26-FEB-15 SQL> quit; Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production -bash-4.1$ exit logout [leoks@myhost ~]$ exit logout [] Leo On Wed, Feb 25, 2015 at 11:08 PM, Ulises Vazquez <uva...@ho...> wrote: > I cannot enter to Oracle SQL*Plus nor Oracle RMAN through a JSch ssh > session. The session hangs when the sqlplus or rman prompt is about to > appear in the output. > > Is there a way to deal with this issue? > > Ulises Vázquez Rocha > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming The Go Parallel Website, > sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for > all > things parallel software development, from weekly thought leadership blogs > to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > JSch-users mailing list > JSc...@li... > https://lists.sourceforge.net/lists/listinfo/jsch-users > |