Jak mogę używać rsync z systemem plików FAT?

27

Chciałbym napisać prosty skrypt kopii zapasowej, który zapisuje niektóre dane na dysku FAT. Czy powinienem sformatować dysk i użyć lepszego systemu plików, czy też można używać rsync z FAT? Jeśli tak, jakie problemy mogę napotkać? Czy wydajność byłaby znacznie gorsza?

EDYCJA: To jest na Linuksie, nawet nie wiedziałem, że jest rsync dla Windows. Źródłami są różne systemy plików (to bałagan), a miejsce docelowe jest obecnie sformatowane za pomocą FAT32.

Dziękuję za odpowiedzi, prawdopodobnie wybiorę formatowanie, ponieważ nie jestem całkowicie pewien, jakie rozmiary plików będziemy mieć.

Kim
źródło

Odpowiedzi:

10

Poleciłbym przeformatować do Linuksa, jeśli to możliwe. Jak wspomniano, FAT ma stosunkowo niskie limity rozmiarów plików i może nie obsługiwać uprawnień i praw własności całkiem dobrze. Co ważniejsze, FAT nie śledzi czasów modyfikacji plików tak dokładnie, jak powiedzmy ext3 (FAT jest precyzyjny tylko w ciągu 2 sekund). Prowadzi to do szczególnie nieprzyjemnego zachowania w przypadku rsync, ponieważ czasami decyduje, że oryginalne pliki są nowsze lub starsze niż plik kopii zapasowej na tyle, że musi ponownie skopiować dane lub przynajmniej ponownie sprawdzić skróty. Podsumowując, powoduje to bardzo niską wydajność kopii zapasowych. Jeśli musisz trzymać się FAT, spójrz na flagi rsync --size-only i --modify-window jako obejścia.

traksyl
źródło
36

Używam rsync do tworzenia kopii zapasowych zdjęć, które przechowuję i przetwarzam na laptopie z systemem Linux (Ubuntu 10.4). Tworzę kopie zapasowe na bardzo podstawowym serwerze NAS z dyskiem twardym 1 TB sformatowanym jako FAT32. Obudowa NAS i oprogramowanie układowe są bardzo proste, więc nie pozwalają na sformatowanie dysku.

Polecenie, którego używam to:

$ rsync --progress --modify-window=1 --update --recursive --times \
  /home/mloskot/Pictures /mnt/nas/Pictures

Aby umożliwić poprawne porównanie czasu - używana jest opcja --modify-window = 1, ponieważ FAT32 rejestruje znaczniki czasu plików z rozdzielczością 2 sekund, która jest inna niż system (systemy) plików używany w systemie Linux. --Update, aby uniknąć niepotrzebnego kopiowania istniejących plików - zachowuje się jak przyrostowa kopia zapasowa.

Aby wykonać porównanie oparte na rozmiarze, możesz określić opcję --size-only.

mloskot
źródło
Dzięki za udostępnienie,
sprawdzę
3
--modify-window = 1 robi ogromną różnicę. Rozwiązało to - skończę teraz w milisekundach, a nie minutach.
Wolfgang Fahl
4
Z jakiegoś powodu muszę użyć --modify-window=2. Podczas korzystania 1nadal kopiuje wszystkie pliki. Kopiowanie z NTFS do FAT32.
Luc
Czasami, nawet z --modify-window, rsync nalegałby na skopiowanie wszystkich moich plików. Korzystam --size-onlyteraz z tej opcji i działa dobrze. To było od Mac OS Extended (rozróżniana wielkość liter, Journaled) do FAT32.
diachedelic
Prawdopodobnie dobrym pomysłem jest dodanie „--ignore-error --max-size = 4GB”, aby uniknąć awarii plików, które nie pasowałyby do FAT32.
Maksym
2

Czy to rsync na Linuksie do / z dysku FAT (która wersja FAT?) Czy używasz wersji Windows cwRsync?

Tak czy inaczej FAT16 i 32 działają z obiema wersjami (sam nie próbowałem FAT12). Jeśli korzystasz z systemu linux, spodziewałbym się, że wydajność systemu plików FAT będzie nieco gorsza niż przy użyciu systemu plików w formacie linux, ponieważ ogólnie rzecz biorąc, są one nieco wolniejsze (cieszę się, że ktoś ustawił mnie w tym systemie, jeśli jestem źle).

Siekacz 3
źródło
1

Tak, sformatuj! Zawsze powinieneś używać lepszego systemu plików niż FAT, chyba że jest to konieczne ze względu na kompatybilność!

Sugeruję sformatowanie dysku przy użyciu tego samego systemu plików, z którego przeprowadzasz synchronizację, w przeciwnym razie potencjalnie stracisz uprawnienia i atrybuty ustawione w plikach i katalogach.

FAT (prawdopodobnie FAT32) może być problematyczny ze względu na maksymalne rozmiary plików (4 GB), maksymalne rozmiary woluminów (2 TB - w każdym razie jeden dzień!), Fragmentację itp.

Jednak jeśli nic z tego nie ma znaczenia, a chcesz tylko prosty, szybki i maksymalnie zgodny system plików, FAT będzie w porządku. Jeśli chodzi o szybkość, z powodu braku dzienników, uprawnień itp., FAT może ewentualnie wykonać alternatywy - NTFS / Ext3 / HFS ...

Jon Rhoades
źródło
1

Czy istnieje powód, dla którego korzystasz z napędu FAT? Rsync powinien działać, aby zapisać dane, ale stracisz meta informacje o plikach ... własność, uprawnienia itp. ... i ryzykujesz problemy, jeśli kiedykolwiek zsynchronizujesz duże pliki, ponieważ FAT ma limit wielkości pliku 2 gig.

Wydajność, której nie mogę komentować, nigdy nie przeprowadzałem testów porównawczych w porównaniu do innych. Wyobrażam sobie, że ma to również wiele wspólnego ze specyfikacjami napędu, a także z tym systemem plików.

Gdybyś mógł , sformatowałbym format macierzysty, którego planujesz używać z komputerem (OS X? Linux?), Gdyby nie nic innego, jak zachować metadane i stracić uderzenie w czoło w ciągu kilku miesięcy, kiedy kończę synchronizując coś, co powoduje błędy z powodu ograniczeń systemu plików. często współużytkowanie z innymi systemami może odbywać się poprzez współdzielenie eksportu lub jeśli używasz NTFS, możesz zachować niektóre metadane, ale nadal uzyskać największą zgodność między systemami, ponieważ wszystkie Mac, NT i Linux obsługują teraz zdolność NT / R.

Bart Silverstrim
źródło