FAT32 USBスティックから車で再生する音楽があります。曲を置くために使用するフォルダーは、EXT4ハードドライブに保存されています。定期的に曲を追加/削除/タグ付けし直しますが、USBスティックの変更をrsync
したい場合があります。しかし、何らかの未知の理由(おそらくアクセス権?)で、rsync
は、変更されたファイルではなく、毎回すべてのファイルをコピーします。私はrsync
を呼び出しています:
rsync -vrlptgD source dest
希望どおりに機能させるにはどうすればよいですか(つまり、ファイルが変更されていないことを知り、コピーしないでください)?
Javier Riveraの答えは機能しますが、rsyncがすべてのファイルのチェックサムをチェックして比較するのにかなり時間がかかります。次のオプションを使用すると、私にとってはうまくいくことがわかりました。
rsync -rtv --modify-window=1 /source /dest
--modify-window=1
スイッチを使用すると、タイムスタンプで±1秒の変動を許容できます。このオプションを有効にすると、タイムスタンプの比較がより緩やかになり、NTFS/FATとUnixファイルシステム間のごくわずかな時間の違いを確認できます。
ソース(ger): http://www.kai-hildebrandt.de/tutorials/rsync.html
追伸:DSTにより1年に2回完全なファイル転送が行われることに注意してください。詳細と可能な解決策については、 here を参照してください。
FAT32のタイムスタンプはUNIXのものとは異なりすぎてファイルの変更を確認できません。-cスイッチも使用する必要があります。動作しますが、遅いです。
最後に、コマンドにはFAT32ファイルシステムでは機能しないオプションがいくつかあります。
Htorqueコメントとして、無効なオプションはあなたを傷つけることはありません、彼らは何もしません。ただし、-cスイッチを追加する必要があります。
この:
rsync -vrc source dest
動作するはずです(少なくとも私のコンピューターでは動作します)。
OSXでも同様の問題が発生していましたが、グルタナメートの答えは役に立たなかった。一部のファイルは1時間異なります。これは、私がタイムゾーンを比較的頻繁に横断する傾向があるためです。他のファイルは1日または1か月もずれています。これがなぜなのか分かりません。タイムスタンプが大きく異なるいくつかのファイルのチェックサムは、それらが実際に同一であることを示しています。
いずれにしても、--size-only
オプションは、rsync
にタイムスタンプを無視するように指示するように見えますが、私の目的には機能します。 -c
/--checksum
(Javierによると)も機能しますが、少し時間がかかります。時間を計ると、作業中のサブディレクトリでGB程度のチェックサムを比較するのに約1分かかりました。もちろん、これが発生する速度は、システム内の最も遅いドライブに依存します。私の場合、それは私の電話のSDカードです。ただし、それは既にファイル操作(チェックサムを含む)を行っていた後だったため、多くのファイルが既にRAMキャッシュにコピーされている可能性があります。
また、一般的な-aオプションの使用も避けてください。 FAT32に関する私の推奨事項は
rsync -vrc --delete --progress --no-p source destination
--no-p:許可なし
--delete:宛先の一致しないファイルとフォルダーを削除します(本当に必要な場合)
--progress:転送中に進行状況を表示します。大きなファイルに適しています。
使用しているフラグ(-vrlptgD)が多すぎます。 rsyncはLinuxユーティリティであり、Fat32およびNTFSでは効果的に機能しないことを忘れないでください。
あなたはそれを使用できるようにトリックを探す必要があります。
試してください:
rsync -rvh --size-only --progress --delete /path/to/ext4/ /path/to/fat32/
詳細 こちら