[英]Java File commands over SSH
我正在創建一個通過ssh做很多事情的java程序。
在我的程序中,我需要能夠在遠程主機上運行諸如“ listFiles()”之類的方法。 我還需要能夠從Apache Commons io運行幾個命令(我正在使用“ FileUtils”類)。 我見過諸如JSch之類的程序,但是它們在文件操作和傳輸方面都沒有足夠的靈活性。
有人可以建議替代方案或解決我的問題的方法嗎?
相反,JSch確實支持文件傳輸: http : //www.jcraft.com/jsch/examples/ScpTo.java.html
至於列出遠程主機上的文件,您不能僅使用Apache Commons FileUtils在此處運行Java命令。 您要做的是在遠程OS上遠程執行命令-等效於通過命令行ssh執行此操作:
ssh remotehost ls /path/to/remote/dir
您選擇的任何ssh庫(不僅僅是JSch)幾乎都是如此。
因此,就JSch而言,這將是(假設您已經設置並連接了一個Jsch ssh會話):
ChannelExec channel= (ChannelExec) session.openChannel("exec");
channel.setCommand("ls /path/to/remote/dir");
InputStream in=channel.getInputStream();
channel.connect()
// read your ls-output from the input stream here
channel.disconnect()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.