2つのFTPサーバー間でファイルを転送する

2つのFTPサーバー間でファイルを転送する

私は 2 つのウェブホスティング パッケージを持っています。1 つはホスティング会社 A からのパッケージ (A)、もう 1 つは別のホスティング会社 B からのパッケージ (B) (異なるネットワーク) です。ローカル コンピューターから FTP 経由でウェブホスティング パッケージ A および/またはウェブホスティング パッケージ B にファイルを転送できます。

今、フォルダーとファイルをホスト A からホスト B に直接転送したいと考えています。FXP を試しましたが、ホスト A とホスト B はそれを許可しませんでした (500 Illegal PORT Command)。FXP を許可するように設定を変更することはできません (通常の Web ホスティング パッケージなので、SSH / ルート アクセスなどはありません)。

ローカル マシン (個人用コンピューター) 上の FTP クライアントを使用して、ホスト A からコンテンツをダウンロードし、手動でホスト B に再アップロードすることは可能ですが、これには長い時間がかかります (データが大きく、ファイルが多い)。

何らかの「助け」なしにファイルを A から B に直接転送する方法はないと思いますが、Linux ルート サーバー C (ホスト C から) も持っています。サーバー C を使用してファイル (スクリプト、プログラム、ワークフローなど) を転送する方法はありますか? たとえば、パッケージ A から FTP 経由でサーバー C に file1.txt をダウンロードし、サーバー C からパッケージ B にアップロードし、サーバー C で削除し、次のファイル file2.txt をダウンロードするなどでしょうか?

答え1

使用curlftpfsLinux サーバー C で。

このプログラムは、curlftpfsリモート FTP ホストをローカル ディレクトリとしてマウントするためのツールです。

これはヒューズベースのソリューションに慣れるセキュリティ上の懸念マウントは一般ユーザーとして行うことができます (また、そうすべきです)。例:

curlftpfs -r ftp.dd-wrt.com ~/mnt/foo/

A と B を異なるマウントポイントにマウントします。次に、ローカル ファイルの場合と同じように、任意のツールを使用してファイルをコピー/移動しますcp -rmc最後にマウントを解除します。マウント解除するコマンドの例:

fusermount -u ~/mnt/foo/

答え2

多くの調査と試行錯誤を経て、2 つの FTP サーバー間AおよびBルート サーバー経由でファイルを転送するための独自のスクリプトを作成することにしましたC

公開日:GitHubとしてFTP 移動サーバー ファイル現在は開発の初期段階ですが、プライベートマシン上での通常のワークフローを解消するのに役立ちます。

関連情報