通過java程式碼執行shell命令的小案列
阿新 • • 發佈:2018-12-09
一 需求描述:
通常我們操作linux伺服器都是通過遠端連線工具,比如:SecureCRT,Xmanager等工具,在其上輸入命令來完成一些工作,但是在實際工作中,有些時候需要我們通過java程式碼遠端連線到linux伺服器執行一些shell命令,包括叢集的狀態管理,執行任務,以及叢集的視覺化介面操作等等。為了解決上述的問題,google公司開源了一個專案叫做sshxcute,通過這個jar包可以操作linucx伺服器。
sshxcute專案的地址:
https://code.google.com/archive/p/sshxcute/
sshxcute的使用說明:
https://www.ibm.com/developerworks /cn/opensource/os-sshxcute/
二 入門案列
1 在idea或者eclipse開發工具中建立maven的java工程,並匯入jar包,由於sshxcute.jar這個jar包沒有maven的座標,需要手動匯入到工程的build path當中去
2 開發程式碼
public static void main(String[] args) throws TaskExecFailException {
//連線到linux伺服器
//第一個引數是我們要連線的linux的伺服器的ip地址
//第二個引數是 linux伺服器的使用者
//第三個引數是 linux伺服器的使用者對應的密碼
ConnBean connBean = new ConnBean("192.168.52.100", "root", "123456");
SSHExec instance = SSHExec.getInstance(connBean);
instance.connect();
//執行shell命令
//echo 'hello world' > /export/servers/demo.txt 這個shell命令是把hello world 寫入demo.txt檔案中,並覆蓋檔案的原來內容
ExecCommand execCommand = new ExecCommand("echo 'hello world' > /export/servers/demo.txt");
instance.exec(execCommand);
instance.disconnect();
}
3 進入linux伺服器,檢視demo.txt的內容是否為hello world,如果是代表你已經操作成功了!
thank you!