rsync NTFS / FAT ve EXT arasında çalışmıyor


14

FAT32 USB çubuğundan arabamda çaldığım müziğim var. Şarkı koymak için kullandığım klasör EXT4 sabit diskimde saklanıyor. Şarkıları düzenli olarak ekliyorum / kaldırıyorum / yeniden etiketliyorum ve zaman zaman rsyncUSB çubuğundaki değişiklikleri istiyorum . Ancak bilinmeyen bir nedenden ötürü (belki izinler?), rsyncTüm dosyaları değiştirilenlerden ziyade her seferinde kopyalar. Şöyle arıyorum rsync:

rsync -vrlptgD source dest

İstediğim gibi nasıl çalıştırabilirim (örneğin, bir dosyanın değiştirilmediğini ve kopyalanmadığını bilmek)?

Yanıtlar:


18

Javier Rivera'nın cevabı işe yarıyor, ancak rsync'in tüm dosya sağlama toplamlarını kontrol etmesi ve karşılaştırması oldukça uzun sürüyor. Aşağıdaki seçeneği kullanmanın benim için daha iyi sonuç verdiğini gördüm:

rsync -rtv --modify-window=1 /source /dest

--modify-window=1Anahtar zaman damgaları ± 1s bir varyans sağlar. Bu seçenek etkinleştirildiğinde, zaman damgası karşılaştırması daha yumuşak olur ve NTFS / FAT ve Unix dosya sistemleri arasındaki küçük zaman farklarına bakar.

Kaynak (ger): http://www.kai-hildebrandt.de/tutorials/rsync.html

Not: DST'nin yılda iki kez tam dosya aktarımına neden olacağını lütfen unutmayın. Daha fazla ayrıntı ve olası çözümler için buraya bakın .


Bu harika. --iconvKaynak
linux'dan

2
Nedense kullanmam gerekiyor modify-window=2çünkü =1hala tüm dosyaları kopyalıyor . NTFS'den FAT32'ye kopyalama. Bundan sonra olsa iyi.
Luc

--size-onlyBoyutu eşleşen dosyaları atlamak için bayrağı ekledim
alexandre1985

1
@ alexandre1985: Bu, içeriklerini değiştiren ancak boyutlarını değiştirmeyen dosyaları atlayacaktır. Yalnızca içeriği değiştirdiklerinde boyutu her zaman değişen dosyaları yedeklemek istediğinizde kullanmalısınız.
David Foerster

11

FAT32'deki zaman damgaları, dosya değişikliklerini kontrol etmek için onlara güvenmek için unix olanlardan çok farklıdır, ayrıca -c anahtarını da kullanmalısınız, rsync'i zaman damgalarına dayanmak yerine değişiklikleri algılamak için tüm dosyaları karşılaştırmaya zorlar. Çalışacak, ancak daha yavaş.

Son olarak, komutunuzda FAT32 dosya sistemleriyle çalışamayan birkaç seçenek vardır.

  • -l bağlantıları koruyacak, FAT32'de bağlantı kavramı yok
  • -p, izni korumaya çalışacaktır, yine FAT32'de izin yok
  • - değişiklik zaman damgalarını korumaya çalışacak, FAT32'de sadece bir zaman damgası var
  • -g, grup sahipliğini korumaya çalışacak, yine FAT32 tarafından desteklenmiyor
  • -D özel dosyaları ve cihazları korumaya çalışacak, şimdi buraya ne geliyor.

Htorque yorumları olarak, geçersiz seçenekler size zarar vermez, sadece hiçbir şey yapmazlar. Ama -c anahtarını eklemelisiniz.

Bu:

rsync -vrc source dest

çalışmalıdır (en azından bilgisayarımda çalışır).


3

OSX altında da benzer bir sorun yaşıyordum ve Glutanamate'in yanıtı yardımcı olmadı. Bazı dosyalar bir saat kadar farklılık gösterir; bunun nedeni, zaman dilimlerini nispeten sık geçme eğilimim olabilir. Diğer dosyalar bir gün hatta bir ay kapalıdır. Bunun neden olduğundan emin değilim. Çok farklı zaman damgalarına sahip bazı dosyalarda sağlama toplamı, aslında aynı olduklarını gösterir.

Her durumda, zaman damgalarını görmezden gelmeyi --size-onlysöyleyen seçenek rsyncbenim amacım için çalışacak gibi görünüyor . -c/ --checksum(Javier'in belirttiği gibi) de işe yarıyor ama biraz daha uzun sürüyor. Zamanladım ve çalıştığım alt dizinde GB ya da benzeri için sağlama toplamlarını karşılaştırmak yaklaşık bir dakika sürdü. Elbette bunun gerçekleşme hızı sistemdeki en yavaş sürücüye bağlı olacaktır; benim durumumda, bu benim telefonumdaki SD kart. Ancak, bu zaten bazı dosya işleme (checksumming dahil) yaptıktan sonra oldu, bu yüzden çoğu dosya zaten RAM önbelleğine kopyalanmış olabilir.


1

Popüler -a seçeneğini kullanmaktan da kaçınmalısınız. FAT32 ile ilgili tavsiyem

 rsync -vrc --delete --progress --no-p source  destination

--no-p: izin yok

--delete: hedefteki eşleşmeyen dosyaları ve klasörü sil (gerçekten istiyorsanız)

- ilerleme: aktarım sırasında ilerleme durumunu gösterir. Büyük dosyalar için iyidir.


1
Buna ek olarak -vrc, ben de bir upvote var , ben de-vrcz
Antony

0

Kullandığınız çok fazla bayrak (-vrlptgD). Unutmayın, rsync bir Linux yardımcı programıdır ve Fat32 ve NTFS ile etkili bir şekilde çalışmaz.

Kullanabilmek için hileler avlamak zorundasınız.

Deneyin:

rsync -rvh --size-only --progress --delete /path/to/ext4/ /path/to/fat32/

Daha fazla bilgi burada

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.