1

同じサーバー上のある SFTP フォルダーから別のフォルダーにファイルをコピー (複製) するという問題に直面しました。

では、質問: リモートで行うための効果的な方法はありますか (つまり、データをクライアントにコピーせずに)。

私はJSch ライブラリで Java を使用しています。

4

2 に答える 2

2

SFTP プロトコル自体は、サーバー自体ではなく、クライアントとサーバー間のデータ転送のみをサポートします。

ただし、基盤となる SSH プロトコル (および JSch の実装) の他の部分を使用して、サーバー上でコマンドを実行することはできます。この場合、Joop が述べたように、Exec チャネルを使用するのが適切です。ChannelSftpに使用したのと同じセッションを、他の任意の数のチャネル (exec チャネルなど) にも使用できます。使用後は必ずチャンネルを閉じてください。(詳細については、JSch wiki のShell、Exec、または Subsystem Channelページを参照してください。

もちろん、サーバーがコマンドの実行をサポートしていない場合、たとえば SFTP のみをサポートするように構成されている場合、これは機能しません。その場合、唯一の解決策は、このファイルをダウンロードして再アップロードすることです。

于 2012-05-28T20:45:46.493 に答える
1

! ...SFTPでは、ローカルコマンドの実行である実行が可能です。

! cp a.txt a-backup.txt

JSchもSSH接続を提供できるため、感嘆符でさえ意味がありません。コードの場合、例にいくつかの出発点があります。Execサンプルで実行する必要があります。

于 2012-05-28T09:47:26.050 に答える