102

フォルダa/とリモートフォルダA/があります。Makefileで次のようなものを実行します。

get-music:
 rsync -avzru server:/media/10001/music/ /media/Incoming/music/

put-music:
 rsync -avzru /media/Incoming/music/ server:/media/10001/music/

sync-music: get-music put-music

sync-musicを作成すると、最初にサーバーからローカルにすべてのdiffが取得され、次にその逆で、ローカルからサーバーにすべてのdiffが送信されます。

これは、将来的に更新または新しいファイルがある場合にのみ非常にうまく機能します。削除がある場合、それは何もしません。

rsyncには、私が望むことを達成するのに役立つ--deleteオプションと--delete-afterオプションがありますが、双方向同期では機能しません。

Synでサーバーファイルを削除したい場合、ローカルファイルが削除されていれば機能しますが、何らかの理由で(後で説明します)サーバーにはないがローカルに存在し、削除されたファイルがある場合は、サーバーでコピーするのではなく、ローカルでそれらを削除したい(たまたま)。

コンテキスト内に3台のマシンがあります。

  1. デスクトップ
  2. ノート
  3. ホームサーバー

そのため、たとえば、ノートブックの同期で削除されたファイルがサーバーにある場合があります。次に、デスクトップ(削除されたサーバーファイルがまだ存在する場所)と同期を実行するときに、これらのファイルを削除したいのですが、サーバーに再度コピーされました。

私はこれがデータベースと操作の追跡でのみ可能だと思います:P

より簡単な解決策はありますか?ありがとうございました。

4

11 に答える 11

66

ユニゾンを試す:http://www.cis.upenn.edu/~bcpierce/unison/

構文:

unison dirA/ dirB/

Unisonは、ファイルが異なる場合にどうするかを尋ねますが、デフォルトの(競合しない)オプションを受け入れる以下を使用して、プロセスを自動化できます。

unison -auto dirA/ dirB/

unison -batch dirA/ dirB/質問はまったくせず、無視されたファイルの数を出力するように書き込みます(競合したため)。

注:私はもうUnisonを使用していません(元のユースケースに対応していないNextCloudを使用しています)。ただし、これrsyncは双方向同期用に設計されていないことに注意してくださいunisonunison(他のソフトウェアと同様に)バグやしわがある可能性があります。今は積極的に整備されているようですが(前回見た時は死んでいると思っていたと思います)、最近の様子はよくわかりません。双方向のファイルシンクロナイザーは必要なかったので、もっと良いオプションがあるかもしれません。

于 2010-05-29T21:50:22.713 に答える
9

元の質問にはデスクトップとラップトップ、および音楽ファイルを含む例も含まれているため(したがって、彼はおそらくGUIを使用しています)、これまでで最高の双方向、マルチプラットフォーム、フリーおよびオープンソースプログラムの1つであるFreeFileSyncについても言及します。 。

GUIベースで、非常に高速で直感的で、フィルタリングや、リモート接続、「衝突」(たとえば、同様のタイムスタンプを持つファイル)の表示とインタラクティブな管理、双方向転送、ミラーリング、すぐ。

FreeFileSyncは、同じネットワーク上の2台のコンピューターを簡単に同期でき、異なるリモートネットワーク上の2台のコンピューターも同期できます。

  • 同じネットワーク上:FreeFileSyncで、一方の側でローカルファイルシステムを使用し、もう一方の側で共有ネットワークドライブ/パスを使用するようにします。Windowsシステムでは、一方のコンピューターでファイル/ディスク共有を有効にし、もう一方のコンピューターからその共有にアクセスします。私はこのようにFreeFileSyncを使用して、メインの開発用PCのソースコードを2台のラップトップと同期させています。また、これらのラップトップの1つをSambaがインストールされてそのディレクトリの1つを共有しているLinuxサーバーと同期しました。
  • ネットワーク間:VPNを作成し、上記と同じようにします。FreeFileSyncは、ローカルネットワーク上にあったようにリモートディスクを認識します。または、USBディスクを接続してインターネットで共有できるルーターを1つ購入します。リモートLinuxサーバーにVPNをインストールし、OpenVPNWindowsクライアントを介して使用しました。
于 2014-03-13T09:41:12.963 に答える
8

ビットポケットを試すこともできます:https ://github.com/sickill/bitpocket

于 2012-01-01T06:30:32.117 に答える
6

これを試して、

get-music:
 rsync -avzru --delete-excluded server:/media/10001/music/ /media/Incoming/music/

put-music:
 rsync -avzru --delete-excluded /media/Incoming/music/ server:/media/10001/music/

sync-music: get-music put-music

私はこれをテストするだけで、うまくいきました。私はWindows7(rsyncパッケージがインストールされたcygwinを使用)とFreeNASファイルサーバー(FreeNASはrsyncパッケージがプリインストールされたFreeBSDで実行されます)の間で双方向同期を行っています。

于 2012-06-02T00:57:34.730 に答える
5

Osyncを使用することもできます:http://www.netpower.fr/osync、これはインテリジェントな削除伝播に基づくrsyncです。また、停止した実行の再開、ソフト削除、時間制御などの複数のオプションがあります。

于 2013-08-18T14:44:14.943 に答える
3

あなたはcsyncを試すことができます、それはowncloudの内部の同期エンジンです。

于 2013-02-01T09:34:12.020 に答える
1

現在、SparkleSharehttps://www.sparkleshare.org/を使用しています。

Mac、Linux、Windowsで動作します。

于 2016-09-30T17:22:03.533 に答える
1

Syncthingについてまだ誰も言及していないことに驚いています。私は何年もの間、携帯電話、タブレット、2台のラップトップを同期するためにそれを使用しています。ある時、私はそれを使って、私のマシンから彼らのマシンまで、約600km離れた家族に10GBの写真を送信しました。そして、それは信じられないほど高速でした(データがSyncthingの検出サーバーを介してルーティングされてNATの問題を回避したにもかかわらず)。私もある時点でOwnCloud/NextCloudを試しましたが、Syncthingの方がはるかに信頼性が高く、またはるかに高速です。

于 2021-04-30T23:03:45.143 に答える
0

2つの同期で機能するかどうかはわかりませんが、-deleteを機能させるには、-recursiveパラメーターも追加する必要があります。

于 2012-03-21T22:31:20.273 に答える
0

cloudsyncを使用して、フォルダーをリモートと同期させることができます。

pip install cloudsync
pip install cloudsync-gdrive
cloudsync sync file:c:/users/me/documents gdrive:/mydocs

リモートがNFSの場合、次を使用できます。

cloudsync sync file:c:/users/me/documents/ file:/mnt/nfs/whatevs
于 2020-05-20T21:59:13.037 に答える
-1

Rcloneはあなたが探しているものです。Rclone(「クラウドストレージのrsync」)は、ローカルファイルシステムを含むさまざまなクラウドストレージプロバイダーとの間でファイルとディレクトリを同期するコマンドラインプログラムです。Rcloneは、以前はSwiftsyncとして知られており、2013年から利用可能になっています。

于 2019-02-19T08:38:14.167 に答える