web-dev-qa-db-ja.com

FTPを使用してサーバーを同期する

3つのVPSサーバーを同期しようとしています。私の考えは次のようなものです:

  1. サーバーAからすべてのファイルをダウンロードします
  2. ダウンロードしたファイルをサーバーBおよびCにアップロードします

これは自動的に発生する必要はありません(トリガーするために数回クリックするのがいいでしょう)。これはFileZillaまたは他の同様のクライアントを使用して可能ですか?

制限により、サーバーは相互にソケットを開くことができないため、別のデバイス(私のコンピューター)を使用してファイルを転送することが、私にとって唯一の可能な解決策のように思えます。

私がやろうとしていることは可能ですか?これを.shファイルまたは.batファイルで自動化してWindows10またはFedora31 PCで実行できるので、スクリプトを実行するだけで済みますか?


編集:これまでのところ、WinSCPスクリプトの例を使用して、これを実行しました。

open sftp://username:pass@hostA:2022
synchronize local E:\SFTP_Sync\hubs /

open sftp://username:pass@hostB:2022
synchronize remote E:\SFTP_Sync\hubs /

open sftp://username:pass@hostC:2022
synchronize remote E:\SFTP_Sync\hubs /

exit

これを実行してすべてを台無しにする前に、これは次のことを行いますか?

  1. サーバーAからローカルディレクトリを更新します
  2. ローカル同期が完了するのを待ちます
  3. サーバーBとサーバーCのリモートディレクトリを更新します
1
user10398534

WinSCPを使用できます。 GUI内スクリプト の両方で同期をサポートします。

GUIについては、 FileZilla-双方向で同期する方法(最新のファイルが優先される)? を参照してください(これは、FileZillaが同期をサポートしていないことも説明しています)。

スクリプトについては、 ファイルをSFTPサーバーに同期する を参照してください–これはSFTP用ですが、接続情報を除いてFTPと同じです。

(私はWinSCPの作者です)

0
Martin Prikryl