Linuxでのローカルおよびリモートディレクトリの同期

Linuxでのローカルおよびリモートディレクトリの同期

いくつかのファイルを含むフォルダがあり、Webサーバーにいくつかのスペースがあります。 Linuxでは、ローカルフォルダとリモートフォルダ間の変更時にのみ双方向同期を実行したいと思います。どうすればいいですか?ところで、サーバーには何もインストールできません。すべての意図と目的のために、それは単なるスペースです。

注:静かに起こるようにrsaキーペアを設定しました。

答え1

一方向同期用に選択したツールは rsync で、双方向同期用に選択したツールは次のとおりです。調和。両方とも両方の実行可能ファイルを使用できる必要があります。サーバー側でファイルを実行可能にできる場合は、適切なバイナリを削除して実行可能にします。

ローカルにLinux、* BSD、Solaris、またはMac OS Xがある場合は、次のものを使用できます。ヒューズWebサーバー空間をローカルファイルシステムのように見せるファイルシステムsshfsSSHアクセス権があるようで、機能する必要があります。それから「基本的に」unisonを使用しなさい。

さらに、ほとんどのバージョン管理ソフトウェア(CVS / Subversionおよび分散VCS)には同期機能(あるシステムでチェックインし、別のシステムでチェックアウト)があります。

答え2

サーバーにインストールされている場合は、rsyncそのビルドを使用して操作を実行します。

双方向にするには、次のようにします(で引用)。http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1285799008594+28353475&threadId=1278777):

すべてのサブディレクトリを含むディレクトリをon/src/fooに双方向に同期するには、次のコマンドをonで実行できます。hostA/dest/foohostBhostA

rsync -auz /src/foo hostB:/dest 
rsync -auz hostB:/dest/foo /src

最初のコマンドは、すべての最新のファイルhostAhostB

2番目のコマンドはすべての最新のファイルをインポートhostBしますhostA。主なオプションは次のとおりです。

コピー時にファイルの変更時間を保存する必要があります。-aこれと違うことをしなさい。

編集時間だけを維持するには、代わりにを使用してください-t

ターゲットから最新のファイルをスキップするには、-u次の手順を実行します。

答え3

これは、2つのフォルダ間で同期する必要があるたびにrsync非常に柔軟なオプションです。問題は、rsyncがftpプロトコルをサポートしていないことです。良い解決策はカルフトププス:

CurlFtpFSは、FTPホストにアクセスするためのFUSEとlibcurlに基づくファイルシステムです。

カールFtpFsを使用すると、ファイルシステムにリモートのftpフォルダを簡単に含めることができます。

以下は、2つのツールの使用法を示す簡単な例です。

curlftpfs -r -s ftp.foobar.com /foo
rsync -a /foo/ /bar
umount /foo

詳しくはマンページをご覧ください。

カールFtpFSインストールの問題を経験したくなく、いくつかのファイルを同期したままにしたい場合は、これらの同期機能を提供するいくつかのFTPツールがあります。

  • FTPSync.pl- ローカルディレクトリとリモートディレクトリを同期したままにするシンプルなPERLスクリプト
  • ウィック- Webページを更新するための非対話型FTPクライアント
  • ファイルジラ- さまざまな機能を備えたGUI FTPクライアント
  • ...

関連情報