web-dev-qa-db-ja.com

LinuxNTFSからNTFSrsyncへのファイルの繰り返し再コピー

LinuxマシンのNTFSパーティションにマウントされたデータを別のLinuxマシンのNTFSパーティションにバックアップしたいと思います。ローカルNTFSドライブは、root.rootが所有するすべてのファイルでマウントされますが、リモートNTFSドライブは、plugdevを使用してマウントされます(したがって、ファイルの所有権はroot.plugdevです)。

この状況では、rsyncは所有者/グループと権限の情報をコピーできないようですので、私は実行しようとしています

Sudo rsync -rltDvO --delete /ntfs/src/ [email protected]:/ntfs/dest/

ただし、このコマンドを実行するたびに、変更されたファイルを転送するだけでなく、すべてのファイルが再コピーされます。 --modify-windowフラグを使用してみましたが、それも役に立ちませんでした。

pdate:すべてのファイルを再コピーするのではなく、各ファイルのチェックサムを再計算します(または、他の処理を実行して、ファイル名を出力します)。これは、最後のrsync以降にソースと宛先に変更が加えられていない場合にファイル名が出力されないe2fsドライブ間で発生することとは対照的です。この処理は、タイムスタンプがNTFS(?)で使用できないためだと思います。

次の更新:アクセス許可は確かにその一部のようです:最初に、rsyncフラグとして-uを使用すると、宛先上のすべてのファイルの処理が停止しましたが、これは私が望むものではありません。次に、リモートマシンでrootアクセス(およびrsyncフラグ-avz)を持つアカウントを使用すると、ファイルとディレクトリのタイムスタンプを実際に変更できます。ただし、一部のファイルは引き続き再コピーされ、-modify-windowはそのためにいくらか役立つようです(完全ではないようですが、理由を調べるためにまだ実験中です)。

5
Steve Kroon

2回目の更新によると、ユーザーのアクセス許可によって時間を設定できませんでした。宛先マシンでrootアカウントを使用してrsyncを実行し、--modify-window=5を実行すると、適切な動作が得られました。 (宛先にrootアクセス権がない場合は、-uフラグが役立ちますが、リモートシステム上のファイルを誰も変更しないことが確実な場合に限ります。)

7
Steve Kroon

タイムスタンプの変動(FATの場合は最大2秒)を処理するため、常にrobocopyを使用するのが理想的です。 Wine内で実行できますが、リモートホストへの接続は不便な場合があります。

http://technet.Microsoft.com/en-us/library/cc733145(WS.10).aspx

edit:Steveのコメントによると、この機能はrsync3.0に含まれているようです。

--modify-window

2つのタイムスタンプを比較する場合、rsyncは、タイムスタンプの差がmodify-window値以下の場合、それらを等しいものとして扱います。これは通常0(完全一致の場合)ですが、状況によってはこれをより大きな値に設定すると便利な場合があります。特に、MS Windows FATファイルシステム(2秒の解像度で時間を表す)との間で転送する場合は、-modify-window = 1が役立ちます(時間が最大1秒異なることができます)。

4
Steve-o

このような場合に私が見つけた追加のヒント:標準時間と夏時間。タイムゾーンが1年変更された直後に、rsync内の多数のファイルの同期が開始されました。 --modify-window = 3605を使用したところ、問題が修正されました。欠点は、変更日が1時間以内のファイルを無視することです。私の場合、ファイルは数日または数週間ごとを除いて変更されるとは予想されていなかったので、それで問題ありませんでした。

0
Rick Carter