XZC.Log
BlogJava
首頁
新隨筆
聯系
聚合
管理
隨筆-314 評論-209 文章-0 trackbacks-0
Java通過Telnet連接執行shell腳本
/**
* commons-net-2.0.jar是工程依賴包
*/
package
telnet2;
import
java.io.InputStream;
import
java.io.PrintStream;
import
org.apache.commons.net.telnet.TelnetClient;
/**
* @descript NetTelenet.java
* @author sinclair
* @date Jun 10, 2010
*/
public
class
NetTelnet {
private
TelnetClient telnet =
new
TelnetClient();
private
InputStream in;
private
PrintStream out;
private
char
prompt =
'$'
;
// 普通用戶結束
public
NetTelnet( String ip,
int
port, String user, String password ) {
try
{
telnet.connect( ip, port );
in = telnet.getInputStream();
out =
new
PrintStream( telnet.getOutputStream() );
// 根據root用戶設置結束符
this
.prompt = user.equals(
"root"
) ?
'#'
:
'$'
;
login( user, password );
}
catch
( Exception e ) {
e.printStackTrace();
}
}
/**
* 登錄
*
* @param user
* @param password
*/
public
void
login( String user, String password ) {
readUntil(
"login:"
);
write( user );
readUntil(
"Password:"
);
write( password );
readUntil( prompt +
" "
);
}
/**
* 讀取分析結果
*
* @param pattern
* @return
*/
public
String readUntil( String pattern ) {
try
{
char
lastChar = pattern.charAt( pattern.length() -
1
);
StringBuffer sb =
new
StringBuffer();
char
ch = (
char
) in.read();
while
(
true
) {
sb.append( ch );
if
(ch == lastChar) {
if
(sb.toString().endsWith( pattern )) {
return
sb.toString();
}
}
ch = (
char
) in.read();
}
}
catch
( Exception e ) {
e.printStackTrace();
}
return
null
;
}
/**
* 寫操作
*
* @param value
*/
public
void
write( String value ) {
try
{
out.println( value );
out.flush();
}
catch
( Exception e ) {
e.printStackTrace();
}
}
/**
* 向目標發送命令字符串
*
* @param command
* @return
*/
public
String sendCommand( String command ) {
try
{
write( command );
return
readUntil( prompt +
" "
);
}
catch
( Exception e ) {
e.printStackTrace();
}
return
null
;
}
/**
* 關閉連接
*/
public
void
disconnect() {
try
{
telnet.disconnect();
}
catch
( Exception e ) {
e.printStackTrace();
}
}
public
static
void
main( String[] args ) {
try
{
System.out.println(
"啟動Telnet..."
);
String ip =
"192.168.0.11"
;
int
port =
23
;
String user =
"user"
;
String password =
"111111"
;
NetTelnet telnet =
new
NetTelnet( ip, port, user, password );
telnet.sendCommand(
"export LANG=en"
);
String r1 = telnet.sendCommand(
"cd /home/project/"
);
String r2 = telnet.sendCommand(
"pwd"
);
String r3 = telnet.sendCommand(
"sh a.sh"
);
System.out.println(
"顯示結果"
);
System.out.println( r1 );
System.out.println( r2 );
System.out.println( r3 );
telnet.disconnect();
}
catch
( Exception e ) {
e.printStackTrace();
}
}
}
posted on 2010-09-29 15:56
xzc
閱讀(4442)
評論(0)
編輯
收藏
所屬分類:
Java
、
linux/unix
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
Kerberos簡介
快使用阿里云的maven倉庫
JAVA對于數字證書的常用操作方法
DER 和 PEM 格式
深入理解 Java中的 流 (Stream)
JAVA 命令參數詳解:-D
靜態html文件js讀取url參數
Java Cookie 中文亂碼解決方法
web.xml中load-on-startup的作用
java keytool 使用總結(轉)
<
2010年9月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
BPM(1)
Design(5)
Eclipse(2)
hadoop(34)
Hibernate(1)
Java(55)
linux/unix(70)
Log4j(5)
Maven(4)
mysql(4)
Oracle(73)
Other(10)
python(3)
Spring(12)
Struts(1)
SybaseIQ(3)
TDD(2)
UML(2)
Web(12)
Xdoclet(8)
XML(17)
隨筆檔案
2018年11月 (3)
2018年9月 (1)
2018年5月 (1)
2018年3月 (2)
2017年10月 (3)
2017年9月 (4)
2017年8月 (3)
2017年7月 (3)
2017年5月 (4)
2017年4月 (6)
2016年9月 (2)
2016年4月 (1)
2016年3月 (3)
2016年2月 (2)
2015年12月 (7)
2015年11月 (7)
2015年10月 (4)
2015年9月 (10)
2015年8月 (1)
2015年7月 (1)
2015年6月 (1)
2015年4月 (1)
2015年2月 (3)
2015年1月 (5)
2014年12月 (3)
2014年9月 (2)
2013年10月 (1)
2013年2月 (1)
2012年8月 (2)
2012年7月 (1)
2012年6月 (1)
2012年3月 (3)
2011年12月 (2)
2011年11月 (1)
2011年10月 (1)
2011年9月 (2)
2011年8月 (4)
2011年7月 (6)
2011年6月 (4)
2011年5月 (2)
2011年4月 (4)
2011年3月 (8)
2011年1月 (3)
2010年12月 (9)
2010年11月 (3)
2010年10月 (1)
2010年9月 (5)
2010年8月 (6)
2010年7月 (6)
2010年6月 (2)
2010年4月 (7)
2010年3月 (9)
2010年2月 (1)
2010年1月 (2)
2009年12月 (3)
2009年10月 (1)
2009年9月 (3)
2009年8月 (5)
2009年6月 (4)
2009年1月 (1)
2008年11月 (7)
2008年10月 (2)
2008年9月 (1)
2008年6月 (7)
2008年5月 (7)
2007年12月 (1)
2007年11月 (4)
2007年10月 (3)
2007年9月 (3)
2007年7月 (1)
2007年6月 (2)
2007年3月 (1)
2007年2月 (1)
2006年12月 (5)
2006年11月 (23)
2006年10月 (18)
2006年9月 (16)
2006年8月 (11)
2006年6月 (3)
2006年4月 (1)
收藏夾
xzc(12)
搜索
最新評論
1.?re: Hive中reduce個數設定
評論內容較長,點擊標題查看
--xzc
2.?re: shell時間處理、加減、以及時間差
評論內容較長,點擊標題查看
--xzc
3.?re: Shell字符串比較相等、不相等方法小結
評論內容較長,點擊標題查看
--xzc
4.?re: shell判斷文件是否存在
評論內容較長,點擊標題查看
--xzc
5.?re: curl模擬http發送get或post接口測試
評論內容較長,點擊標題查看
--xzc
閱讀排行榜
1.?web.xml中load-on-startup的作用(149965)
2.?Oracle中start with...connect by子句的用法 (49777)
3.?數據庫設計準則(第一、第二、第三范式說明)(44883)
4.?Oracle閃回查詢恢復delete刪除數據(27812)
5.?shell 判斷字符串是否存在包含關系(26445)
評論排行榜
1.?web.xml中load-on-startup的作用(22)
2.?數據庫設計準則(第一、第二、第三范式說明)(17)
3.?rowid 刪除重復記錄!!! (8)
4.?oracle日期處理完全版(8)
5.?Oracle SQL 內置函數大全(6)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 xzc
主站蜘蛛池模板:
蓬溪县
|
新建县
|
册亨县
|
金乡县
|
安福县
|
洪雅县
|
许昌市
|
榆中县
|
钟山县
|
邢台县
|
宁阳县
|
昌吉市
|
卢龙县
|
平和县
|
吉安市
|
海丰县
|
永州市
|
增城市
|
康定县
|
阳新县
|
广丰县
|
襄汾县
|
深水埗区
|
准格尔旗
|
清苑县
|
旺苍县
|
原阳县
|
宜兰市
|
宁乡县
|
开封县
|
大厂
|
清丰县
|
札达县
|
景德镇市
|
屏东市
|
突泉县
|
武宁县
|
平阴县
|
西林县
|
聂拉木县
|
武汉市
|