我正在开发一个Java工具,它将文件从一个远程服务器上传到另一个远程服务器。
该程序将在笔记本电脑上运行。软件需要通过SSH协议连接到serverA,然后一旦连接到serverA,就必须通过FTP将文件传输到serverB。 要传输的文件托管在serverA上。
由于防火墙,我无法直接连接到serverB。
以下是摘要:
用JSch可以做到吗?如下所示:
JSch client = new JSch();
Session session = client.getSession("login", "serverA", 22);
// test purpose
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword("password");
session.connect();
channel = (ChannelExec) session.openChannel("exec");
channel.setCommand("ftp -i ftp://username:password@serverB; put file.txt; close; quit;");
修改
如何编写脚本并将其上传到服务器A上?
#!/bin/sh
ftp -n -i <<ENDOFINPUT
open serverB
user root password
cd /home/root
put xxx
close
bye
ENDOFINPUT