github : https://github.com/wengyingjian/ssh-java-demo.git
程序寫完后,ssh連接到遠程服務器上需要做的步驟都是固定的,所以我們可以通過程序來使這件事情簡單化。
1.原先要做的事: 0).ssh user@host passWord 遠程登錄 1).$CATALINA_HOME/bin/shutdown.sh 關閉tomcat 2).$CATALINA_HOME/bin/startup.sh 啟動tomcat 3).tail -f $CATALINA_HOME/logs/catalina.out 監控程序日志輸出。這里也可能是log4j指定的其它目錄。2.尋求解決方案。 最開始(現在也是)我用的就是上面的方法,感覺特別死板,而且我也看到公司里有人用shell來做這些事情。于是我就想,我是不是也應該讓程序來幫自己工作。 首先,我不怎么會bshell,其次,我想做的更好(將這些所有的步驟放到maven插件里面去做)。所以我就想,既然bshell可以來控制ssh,那么我用java應該同樣也可以。 上網搜了下,發現的確有,于是就拿過來用了。3.搬過來改造 首先是測試與加注釋。 為了保險起見(有前輩告訴我調用bin/shutdown.sh不好,還沒關掉又打開會出問題,直接找到進程殺死更加安全) 發現這個調用返回字符串的時候有些坑,每次都是得到所有的消息,無奈只好字符串處理。來得到返回的進程號,然后殺死。 到這里一切都還成功4.現在需要追蹤日志了 翻了半天接口沒找到能像ssh連接時一樣不斷輸出日志的。所以不能再去找找有沒有其它的方法了。
新聞熱點
疑難解答