Linuxでローカルディレクトリをリモートディレクトリと同期する


14

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

注:すでにrsaキーペアが設定されているため、静かに実行できます。

回答:


12

単方向同期に最適なツールはrsyncであり、双方向同期に最適なツールはUnisonです。両方とも、実行可能ファイルが両側で使用可能である必要があります。サーバー側でファイルを実行可能にできる場合は、ユニゾンバイナリを削除して実行可能にします。

あなたはローカルのLinux、* BSD、SolarisまたはMacのOS Xを持っている場合は、おそらく使用することができますFUSEの -ウェブサーバスペースがローカルファイルシステムとして表示させるためにファイルシステムをsshfsのは、あなたがSSHアクセスを持っているように見えるので、動作するはずです。次に、ユニゾンを「ローカルに」使用します。

また、ほとんどのバージョン管理ソフトウェア(CVS / Subversionと分散VCS)には、同期機能があります(一方のマシンでチェックインし、他方のマシンでチェックアウトする)。


4

サーバーにインストールされている場合はrsync、まさにそのジョブのためにビルドを使用します。

双方向にするには、これを行います(http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1285799008594+28353475&threadId=1278777から引用):

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

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

最初のコマンドは、上の新しいすべてのファイルプッシュhostAのをhostB

2番目のコマンドは、上の新しいすべてのファイル引っ張ってくるhostBのをhostA。重要なオプションは次のとおりです。

コピーするときは、ファイルの変更時間を保存する必要があります。-aこれと他のことを行います。

変更時刻のみを保持する場合は、-t代わりに使用します。

宛先で新しいファイルをスキップするには:-uこれを行います。


私が読んだ限り、rsyncは双方向ではなく、「プロトコルバージョンの不一致-あなたのシェルはきれいですか?」というエラーが表示されます
アンドリューレッド

hostanswers.net/linux-hosting/rsync-protocol-version-mismatchは、バージョンの不一致を修正するのに役立ちます。双方向性については、回答を更新しました。
タント

1
Rsyncは双方向の同期にはまったく適合していません。1つには、競合が発生しても警告は表示されません。代わりにUnisonを使用してください。これは仕事に最適なツールです。
ジル 'SO-悪であるのをやめる

1
これは、サーバーAがサーバーBから未来にある場合、ひどく壊れます。私の場合、リモートサーバーより13時間進んでいます。
ティムポスト

1

2つのフォルダー間で同期が必要になるたびにrsync、柔軟に選択できます。問題は、rsyncがftpプロトコルをサポートしないことです。このための良い回避策はcurlFtpFSです:

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

curlFtpFsを使用すると、ファイルシステムにリモートftpフォルダーを簡単に組み込むことができます。

これは、両方のツールの使用法を示す短い例です。

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

詳細については、マンページを参照してください。

curlFtpFSをインストールする手間が不要で、一部のファイルの同期を維持するだけの場合、このような同期機能を提供するftpツールがたくさんあります。

  • FTPSync.pl-ローカルディレクトリとリモートディレクトリの同期を維持する単純なPERLスクリプト
  • weex -Webページを更新するための非対話型FTPクライアント
  • filezilla-多くの機能を備えたGUI FTPクライアント
  • ...

1. Rsyncは双方向の同期には適していません。代わりにUnisonを使用してください。2. FTPはどこから来たのですか?質問でのRSAキーの言及は、むしろssh(したがってsshfs)を示唆しています。
ジル 'SO-悪であるのをやめる

あなたは正しい、FTPは質問に記載されていません。正直に言うと、「ウェブスペース」と「単なるスペース」の組み合わせだったと思います。昨日は少し疲れました。
echox
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.