欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

java實現linux連接操作

系統 2469 0

此程序需要ganymed-ssh2-build210.jar包。
下載地址: http://www.ganymed.ethz.ch/ssh2/
為了調試方便,可以將\ganymed-ssh2-build210\src下的代碼直接拷貝到我們的工程里,
此源碼的好處就是沒有依賴很多其他的包,拷貝過來干干凈凈。

此程序的目的是執行遠程機器上的Shell腳本。
遠程機器IP:***.**.**.***
用戶名:sshapp
密碼:sshapp
登錄后用pwd命令,顯示當前目錄為:/sshapp.
在/sshapp/myshell/目錄下有myTest.sh文件,內容如下:

public ? class ?RmtShellExecutor? {
????
????

????
private ?Connection?conn;
????

????
private ?String?????ip;
????

????
private ?String?????usr;
????

????
private ?String?????psword;
????
private ?String?????charset? = ?Charset.defaultCharset().toString();

????
private ? static ? final ? int ?TIME_OUT? = ? 1000 ? * ? 5 ? * ? 60 ;

????

????
public ?RmtShellExecutor(ShellParam?param)? {
????????
this .ip? = ?param.getIp();
????????
this .usr? = ?param.getUsername();
????????
this .psword? = ?param.getPassword();
????}


????

????
public ?RmtShellExecutor(String?ip,?String?usr,?String?ps)? {
????????
this .ip? = ?ip;
????????
this .usr? = ?usr;
????????
this .psword? = ?ps;
????}


????

????
private ? boolean ?login()? throws ?IOException? {
????????conn?
= ? new ?Connection(ip);
????????conn.connect();
????????
return ?conn.authenticateWithPassword(usr,?psword);
????}


????

????
public ? int ?exec(String?cmds)? throws ?Exception? {
????????InputStream?stdOut?
= ? null ;
????????InputStream?stdErr?
= ? null ;
????????String?outStr?
= ? "" ;
????????String?outErr?
= ? "" ;
????????
int ?ret? = ? - 1 ;
????????
try ? {
????????????
if ?(login())? {
????????????????
// ?Open?a?new?{@link?Session}?on?this?connection
????????????????Session?session? = ?conn.openSession();
????????????????
// ?Execute?a?command?on?the?remote?machine.
????????????????session.execCommand(cmds);
????????????????
????????????????stdOut?
= ? new ?StreamGobbler(session.getStdout());
????????????????outStr?
= ?processStream(stdOut,?charset);
????????????????
????????????????stdErr?
= ? new ?StreamGobbler(session.getStderr());
????????????????outErr?
= ?processStream(stdErr,?charset);
????????????????
????????????????session.waitForCondition(ChannelCondition.EXIT_STATUS,?TIME_OUT);
????????????????
????????????????System.out.println(
" outStr= " ? + ?outStr);
????????????????System.out.println(
" outErr= " ? + ?outErr);
????????????????
????????????????ret?
= ?session.getExitStatus();
????????????}
? else ? {
????????????????
throw ? new ?AppException( " 登錄遠程機器失敗 " ? + ?ip);? // ?自定義異常類?實現略
????????????}

????????}
? finally ? {
????????????
if ?(conn? != ? null )? {
????????????????conn.close();
????????????}

????????????IOUtils.closeQuietly(stdOut);
????????????IOUtils.closeQuietly(stdErr);
????????}

????????
return ?ret;
????}


????

????
private ?String?processStream(InputStream?in,?String?charset)? throws ?Exception? {
????????
byte []?buf? = ? new ? byte [ 1024 ];
????????StringBuilder sb?
= ? new ?StringBuilder();
????????
while ?(in.read(buf)? != ? - 1 )? {
????????????sb.append(
new ?String(buf,?charset));
????????}

????????
return ?sb.toString();
????}


????
public ? static ? void ?main(String?args[])? throws ?Exception? {
????????RmtShellExecutor?exe?
= ? new ?RmtShellExecutor( " ***.**.**.*** " ,? "ssh app " ,? "sshapp " );
????????
// ?執行myTest.sh?參數為java?Know?dummy
????????System.out.println(exe.exec( " sh?/webapp/myshell/myTest.sh?java?Know?dummy " ));
// ????????exe.exec("uname?-a?&&?date?&&?uptime?&&?who");
????}

}

?

注:一般情況下shell腳本正常執行完畢,getExitStatus方法返回0。
此方法通過遠程命令取得Exit Code/status。但并不是每個server設計時都會返回這個值,如果沒有則會返回null。
在調用getExitStatus時,要先調用WaitForCondition方法,通過ChannelCondition.java接口的定義可以看到每個條件的具體含義
在實際應用中,可以將outStr和outErr記錄到日志中,以便維護人員查看shell的執行情況,
而getExitStatus的返回值,可以認為是此次執行是否OK的標準。

?

java實現linux連接操作


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲欧洲一区二区三区 | 免费一级在线 | 亚洲国产成人va在线观看网址 | 国产福利精品在线观看 | 久久午夜电影网 | 天堂在线v| 激情小说图 | 久久久久久国产精品 | 国产精品久久久久久久网站 | 日韩一区二区三区在线视频 | 极品丝袜高跟91极品系列 | 色婷婷香蕉 | 欧美一区二区免费 | 三上悠亚2022年最新番号 | 国产成年网站 | 啪啪免费网站 | 午夜九九九 | 成人在线欧美 | 亚洲区国产区 | 奇米影视77 | 香蕉久久一区二区不卡无毒影院 | 性xxxxx视频| 蜜桃免费一区二区三区 | 亚洲经典三级 | 午夜男人女人爽爽爽视频 | www日韩免费高清视频 | 日本三级黄色片网站 | 国产亚洲精品一区二区 | 色噜噜狠狠色综合欧洲selulu | 大香萑75久久精品免费 | 91精品国产综合久久久久久丝袜 | 亚洲免费观看视频 | 日韩在线免费视频 | 黄色国产视频 | 色哦色哦哦色天天综合 | 日本高清色www | 亚洲精品视频在线 | 国产淫语对白在线视频 | 国产一区二 | 久久久久久亚洲 | 国产精品久久久久久日本 |