web-dev-qa-db-ja.com

Unisonとの一方向の同期/バックアップ

MacOSXおよびUbuntu9.10マシンで同期ツールUnisonを使用して、MacからUbuntuに音楽をバックアップしています。重要なのは、Macをソースにし、Ubuntuをターゲットにして、Ubuntuマシンが常にMac上のMusicフォルダーの正確なコピーになるようにしたいのですが、Ubuntuから何かを削除すると、 Macでは削除されます。私はドキュメントを見ましたが、それは今のところ私の頭を越えているようなものです。

13
roflwaffle

この仕事に適したツールはrsyncかもしれません(両方のコンピューターにインストールする必要があります)。私はラップトップの音楽フォルダをホームファイルサーバーと同期させるために使用します。これはあなたの状況と非常によく似ています。 rsyncは、ミラーコピーを最新の状態に保つことを専門としています。

このようなコマンドラインは便利かもしれません(Ubuntuから実行すると仮定します):

rsync -a --delete-before myMacMachineName:/MyMusic/ /mymusic/

Macから実行し、プルする代わりにUbuntuコンピューターにプッシュする場合は、上記の行を切り替えるのは非常に簡単です。

1

unison -forceを使用します:

マニュアル:

プリファレンス-force rootを含めると、Unisonはすべての違い(競合しない変更も含む)を解決してrootを優先します。これにより、Unisonがシンクロナイザーからミラーリングユーティリティに効果的に変更されます。 -force newer(または-force older)を指定して、Unisonに後の(前の)modtimeでファイルを選択させることもできます。この場合、-timesプリファレンスも有効にする必要があります。この設定は、forcepartial設定によって上書きされます。この設定は、自分が何をしているかを確実に理解している場合にのみ使用してください。

例えば。 (ソケットモードを使用)。他の何かのミラーになりたいディレクトリでユニゾンリスナーを起動します。ユニゾンクライアント呼び出しでそのソケットをターゲットにします。強制により、変更は指定されたルートからすべて一方向になります。

cd /target/mirror/directory
unison -socket 123456 &

他の場所または同じホスト上:

unison -silent -force /home/test/thing2 /home/test/thing2 socket://somehost:123456/
33
Rich K.

TheToasterThatCouldによる回答は「機能します」が、Macファイルシステムを正しくバックアップしないことに注意してください "Resource Forks"

Mac OSXバージョンのrsyncはリソースフォークに対応していますが、Linuxバージョンのrsyncは対応していません(AppleバージョンのrsyncはOSX固有であり、それらを表示しないため、おそらくそうなることはありません)。 OSX以外のバージョンのrsyncが処理できる方法で、もう一方の端でリソースフォークがrsyncに接続されます。この結果、リソースフォークはMacとLinuxマシン間でrsyncされません。

特定のMacアプリは、リソースフォークを利用して、特定のファイルに関連するデータを保存します。同期しているファイルがリソースフォークを必要としない、または使用していないことが確実な場合は、rsyncを使用しても問題ありません。

リソースフォークを同期する場合は、(unison docsによると)リソースフォークを同期できるため、unisonの方が適しています。

2
allnatural

FreeFileSync は、ディレクトリをミラーリングできるオープンソースアプリケーションです。一方向または双方向の同期、または「コントリビュート」モードで実行できます。 MicrosoftのSynctoyの仕事ができると言えます。 FreeFileSyncは、Mac OS X、Linux、およびWindowsで自由に使用できます。

0
Teo