3

あるリモートサーバーから別のリモートサーバーにファイルをアップロードするJavaツールを開発しています。

プログラムはラップトップで実行されます。ソフトウェアはSSHプロトコルでserverAに接続する必要があり、serverAに接続したら、FTP経由でserverBにファイルを転送する必要があります。転送されるファイルはserverAでホストされます。

ファイアウォールが原因でserverBに直接接続できません。

要約は次のとおりです。

network_architecture

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;");

編集

スクリプトを書いてserverAにアップロードするのはどうですか?

#!/bin/sh
ftp -n -i <<ENDOFINPUT
open serverB
user root password
cd /home/root
put xxx
close
bye
ENDOFINPUT
4

0 に答える 0