01: /*
02: * Copyright 2001-2005 The Apache Software Foundation
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
10: * Unless required by applicable law or agreed to in writing, software
11: * distributed under the License is distributed on an "AS IS" BASIS,
12: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13: * See the License for the specific language governing permissions and
14: * limitations under the License.
15: */
16: package examples;
17:
18: import java.io.IOException;
19: import org.apache.commons.net.bsd.RExecClient;
20:
21: /***
22: * This is an example program demonstrating how to use the RExecClient class.
23: * This program connects to an rexec server and requests that the
24: * given command be executed on the server. It then reads input from stdin
25: * (this will be line buffered on most systems, so don't expect character
26: * at a time interactivity), passing it to the remote process and writes
27: * the process stdout and stderr to local stdout.
28: * <p>
29: * Example: java rexec myhost myusername mypassword "ps -aux"
30: * <p>
31: * Usage: rexec <hostname> <username> <password> <command>
32: * <p>
33: ***/
34:
35: // This class requires the IOUtil support class!
36: public final class rexec {
37:
38: public static final void main(String[] args) {
39: String server, username, password, command;
40: RExecClient client;
41:
42: if (args.length != 4) {
43: System.err
44: .println("Usage: rexec <hostname> <username> <password> <command>");
45: System.exit(1);
46: return; // so compiler can do proper flow control analysis
47: }
48:
49: client = new RExecClient();
50:
51: server = args[0];
52: username = args[1];
53: password = args[2];
54: command = args[3];
55:
56: try {
57: client.connect(server);
58: } catch (IOException e) {
59: System.err.println("Could not connect to server.");
60: e.printStackTrace();
61: System.exit(1);
62: }
63:
64: try {
65: client.rexec(username, password, command);
66: } catch (IOException e) {
67: try {
68: client.disconnect();
69: } catch (IOException f) {
70: }
71: e.printStackTrace();
72: System.err.println("Could not execute command.");
73: System.exit(1);
74: }
75:
76: IOUtil.readWrite(client.getInputStream(), client
77: .getOutputStream(), System.in, System.out);
78:
79: try {
80: client.disconnect();
81: } catch (IOException e) {
82: e.printStackTrace();
83: System.exit(1);
84: }
85:
86: System.exit(0);
87: }
88:
89: }
|