jsch


Running a Shell Script using java ( process Builder ) with a specific unix user


I have developed a web application ( deployed on a weblogic server ) , I want to connect to the solaris server and execute a shell script with a specific unix user.
At present , the script runs with a wls user. Here's the portion of my code :
String CLA="-d";
out.println("Stopping ASAP for the changes to reflect ...");
ProcessBuilder processBuilder = new ProcessBuilder("/bin/ksh","/apps/vpn/asap/scripts/stop_asap_sys_tool"+" "+CLA);
process = processBuilder.start();
InputStream is = process.getInputStream();
InputStream isErr = process.getErrorStream();
InputStreamReader isr = new InputStreamReader(is);
InputStreamReader isrErr = new InputStreamReader(isErr);
BufferedReader br = new BufferedReader(isr);
BufferedReader brErr = new BufferedReader(isrErr);
String line;
String lineErr;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
while ((lineErr = brErr.readLine()) != null) {
System.out.println(lineErr);
}
My search result suggests to use Jsch. Can some one give me an example with respect to my implementation on using Jsch. Or any other way of doing it ?!
THanks ,
Bhavin
Jsch is a good way to go, here is something to assist you with what you trying to do:
Examples from the Main Site which covers Remote Execution
[click]
Also here is the code already done for you on StackOverflow [click]
A word of advice, when you execute scripts, and you have written then on Windows or opened them there, you will need to run a dos2unix on the file (if you executing on Linux); otherwise your remote execution is going to fail horribly.
I think this can help you
/**
* This method allows you to send and execute *nix command through SSH
* to specified removed host and returns command output, in case incorrect
* command will return command output error
*
* #param user - ssh user name for login
* #param password - ssh password for login
* #param host - ip or domain with ssh server
* #param command - command to execute
* #return string with command output or output error
* #author Roman Kukharuk
*/
public String execNixComAndGetRez(String user, String password, String host,
String command) {
int port = 22;
String rez = "+!";
try {
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
// System.out.println("Establishing Connection...");
session.connect();
// System.out.println("Connection established.");
Channel channel = session.openChannel("exec");
((ChannelExec) channel).setCommand(command); //setting command
channel.setInputStream(null);
((ChannelExec) channel).setErrStream(System.err);
InputStream in = channel.getInputStream();
channel.connect();
byte[] tmp = new byte[1024];
while (true) {
while (in.available() > 0) {
int i = in.read(tmp, 0, 1024);
if (i < 0)
break;
// System.out.print(new String(tmp, 0, i));
rez = new String(tmp, 0, i);
}
if (channel.isClosed()) {
// System.out.println("exit-status: "+channel.getExitStatus());
break;
}
try {
Thread.sleep(1000);
} catch (Exception e) {
rez = e.toString();
}
}
channel.disconnect();
session.disconnect();
}
catch (Exception e) {
rez = e.toString();
}
return rez;
}

Related Links

Hundreds of Apache SSHD clients leave hundreds of OpenSSH daemon processes running
Jsch - ssh connection through ssh tunnel
Changing password using Jsch and ChannelExec
how to delete local file using jsch after file is sent to remote SFTP server directory
com.jcraft.jsch.JSchException: Auth fail error
Creating a new file in SSH enabled system using JSCH
How to interact with the script after its execution using Jsch
java jsch -executing multiple unix commands
How to get one stream from error stream and input stream when calling a script using JSCH
SFTP using jschexception verify false sometimes fails
how to increase the jsch buffer size?
The cipher 'aes256-cbc' is required, but it is not available
How to pause/resume procedure while/after upload file by ChannelSftp
jsch + running multiple command in shell after SU and then close channal
NGit/Nsch Generating SSH Keypair (c# Jgit)
Extract userInfo from JSCH stream

Categories

HOME
sendgrid
vim
wso2-am
activiti
mediawiki
ngrx
mfc
alfresco
getelementsbytagname
c#-2.0
swagger-ui
android-youtube-api
kibana-4
wheelnav.js
usergrid
static-libraries
fallback
windows-7-x64
solaris-10
text-rendering
jprofiler
scriptcs
web-sql
wijmo
cas
django-storage
info.plist
minitab
vision
srcset
tinymce-4
galsim
data-manipulation
http-get
column-family
ghost4j
cloud-code
mpmediaquery
dynamics-crm-2013
document.write
webdriver-manager
squib
quadratic-programming
spring-security-kerberos
isbn
businessworks
osx-mavericks
upstart
errordocument
multipeer-connectivity
theming
rails-routing
dotnetzip
aurelia-validation
nstextview
recursive-datastructures
nativeapplication
dtexec
ableton-live
phishing
gridview-sorting
lua-5.1
testng-dataprovider
yaws
php-parse-error
vhd
ibaction
sysinternals
apache-commons-fileupload
createprocessasuser
pretty-print
ng-animate
fpml
mesa
easy-install
file-locking
cascalog
enter
netbeans-6.9
asyncfileupload
subscript
boost-filesystem
blitz++
filtered-index
preference
mirah
fixed-width
simpletest
private-members
msdev
geneva-server
commodore
paul-graham

Resources

Database Users
RDBMS discuss
Database Dev&Adm
javascript
java
csharp
php
android
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App