1 /*
2
3 Source code follows: adapted from Exec.java found in jsch examples
4
5 By vaidya.anand at gmail.com
6
7 anand@aries5672:~/workspace/samplejsch$ cat samplejsch.java
8
9 */
10
11 import com.jcraft.jsch.*;
12 import java.io.*;
13
14 public class samplejsch {
15
16 public static void main(String[] args) {
17
18 try{
19 JSch jsch=new JSch();
20
21 String host=System.getProperty("user.name") + "@localhost";
22 if(args.length>0){
23 host=args[0];
24 }
25 String user=host.substring(0, host.indexOf('@'));
26
27 host=host.substring(host.indexOf('@')+1);
28 Session session=jsch.getSession(user, host, 22);
29
30 jsch.setKnownHosts("/home/anand/.ssh/known_hosts");
31 jsch.addIdentity("/home/anand/.ssh/id_rsa");
32
33 // If two machines have SSH passwordless logins setup, the following line is not needed:
34 session.setPassword("YOURPASSWORD");
35 session.connect();
36
37 String command="ps -ef;date;hostname";
38 // command=args[1];
39
40 Channel channel=session.openChannel("exec");
41 ((ChannelExec)channel).setCommand(command);
42
43 //channel.setInputStream(System.in);
44 channel.setInputStream(null);
45
46 ((ChannelExec)channel).setErrStream(System.err);
47
48 InputStream in=channel.getInputStream();
49
50 channel.connect();
51 byte[] tmp=new byte[1024];
52 while(true){
53 while(in.available()>0){
54 int i=in.read(tmp, 0, 1024);
55 if(i<0)break;
56 System.out.print(new String(tmp, 0, i));
57 }
58 if(channel.isClosed()){
59 System.out.println("exit-status: "+channel.getExitStatus());
60 break;
61 }
62 try{Thread.sleep(1000);}catch(Exception ee){ee.printStackTrace();}
63 }
64 channel.disconnect();
65 session.disconnect();
66 }
67 catch(Exception e){
68 System.out.println(e);
69 }
70
71
72 } //end main
73
74 } //end class
75
76 // ========================================================================================
77