そのため、SFTPを介してリモートサーバーに接続し、ファイルをプルダウンしてからファイルを処理する必要がある小さなプログラムを作成しています。私はここでいくつかの答えを通してJSchに出くわしました、そしてそれは仕事に完璧に見えました。これまでのところ、使いやすく、動作していますが、修正したいことが1つあります。次のコードを使用して、ファイルを接続してプルダウンします。
JSch jsch = new JSch();
Session session = null;
try {
session = jsch.getSession("username", "127.0.0.1", 22);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword("password");
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
sftpChannel.cd(REMOTE_FTP_DIR);
sftpChannel.lcd(INCOMING_DIR);
sftpChannel.get(TMP_FILE, TMP_FILE);
sftpChannel.exit();
session.disconnect();
} catch (JSchException e) {
e.printStackTrace();
} catch (SftpException e) {
e.printStackTrace();
}
これでうまくいき、ファイルを取得します。このコードをLinuxサーバーで実行しています。コードを実行すると、JSchからKerberosのユーザー名とパスワードの入力を求められます。次のようになります。
Kerberosユーザー名[george]:
georgeのKerberosパスワード:
両方の質問に対してEnterキーを押すだけで、プログラムは問題なく続行されるようです。ただし、このコードをcronタスクで自動化する必要があるため、プログラムを一時停止してこれら2つの質問をする必要はありません。これを聞かないように私が供給していないものはありますか?尋ねるのをやめるために私がしなければならないことはありますか?うまくいけば、誰かがいくつかのアイデアを持っています。ありがとう。