Comment puis-je utiliser rsync avec un système de fichiers FAT?

27

Je voudrais écrire un simple script de sauvegarde qui enregistre certaines données sur un lecteur FAT. Dois-je reformater le disque et utiliser un meilleur système de fichiers ou est-il possible d'utiliser rsync avec FAT? Si oui, quels problèmes pourrais-je rencontrer? Les performances seraient-elles bien pires?

EDIT: C'est sur Linux, je ne savais même pas qu'il y avait un rsync pour Windows. Les sources sont différents systèmes de fichiers (c'est un gâchis), et la destination est actuellement formatée en FAT32.

Merci pour vos réponses, je vais probablement opter pour un reformatage, car je ne suis pas complètement sûr de la taille des fichiers que nous aurons.

Kim
la source

Réponses:

10

Je recommanderais de reformater un fs linux si vous le pouvez. Comme mentionné, FAT a des limites de taille de fichier relativement faibles et peut ne pas gérer correctement les autorisations et la propriété. Plus important encore, FAT ne suit pas les heures de modification sur les fichiers aussi précisément que, par exemple, ext3 (FAT n'est précis que dans une fenêtre de 2 secondes). Cela conduit à un comportement particulièrement désagréable avec rsync car il décidera parfois que les fichiers d'origine sont plus récents ou plus anciens que le fichier de sauvegarde suffisamment pour qu'il ait besoin de recopier les données ou au moins de revérifier les hachages. Dans l'ensemble, cela entraîne de très mauvaises performances sur les sauvegardes. Si vous devez vous en tenir à FAT, examinez les indicateurs --size-only et --modify-window de rsync comme solutions de contournement.

thraxil
la source
36

J'utilise rsync pour sauvegarder mes photos que je stocke et traite sur un ordinateur portable sous Linux (Ubuntu 10.4). Je les sauvegarde sur un NAS très basique avec un disque dur de 1 To formaté en FAT32. Le boîtier et le firmware du NAS sont très basiques, il ne permet donc pas de reformater le disque.

La commande que j'utilise est:

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

Pour permettre une comparaison correcte de l'heure, l'option -modify-window = 1 est utilisée, car FAT32 enregistre les horodatages des fichiers avec une résolution de 2 secondes qui est différente des systèmes de fichiers utilisés sous Linux. La --update pour éviter la copie inutile des fichiers existants - elle se comporte comme une sauvegarde incrémentielle.

Afin de faire une comparaison basée sur la taille, vous pouvez spécifier l'option --size-only.

mloskot
la source
Merci pour le partage, je vais vérifier votre combinaison de drapeaux :-) Le manuel de rsync est un peu volumineux ...
DutchUncle
3
la --modify-window = 1 fait une énorme différence. Il a résolu le - j'ai maintenant terminé en quelques millisecondes au lieu de quelques minutes.
Wolfgang Fahl
4
Pour une raison quelconque, je dois utiliser --modify-window=2. Lors de son utilisation, 1il copie toujours tous les fichiers. Copie de NTFS vers FAT32.
Luc
Parfois, même avec --modify-window, rsync insisterait pour copier tous mes fichiers. J'utilise l' --size-onlyoption maintenant et cela fonctionne bien. C'était de Mac OS étendu (sensible à la casse, journalisé) à FAT32.
diachedelic
Probablement une bonne idée d'ajouter '--ignore-errors --max-size = 4GB' pour éviter de planter sur des fichiers qui ne rentreraient pas dans FAT32.
Maksym
2

Est-ce rsync sur linux vers / depuis un disque FAT (quelle version de FAT?) Ou utilisez-vous la version Windows cwRsync?

Dans les deux cas, FAT16 et 32 ​​fonctionnent avec les deux versions (je n'ai pas essayé FAT12 moi-même). Si vous êtes sur un système linux, je m'attendrais à ce que les performances d'un système de fichiers FAT soient un peu moins bonnes que celles d'un système de fichiers au format linux car en général, elles sont légèrement plus lentes (heureux pour quelqu'un de me remettre sur le coup si je suis faux).

Chopper3
la source
1

Oui, reformatez! Vous devez toujours utiliser un meilleur système de fichiers que FAT sauf si vous devez le faire pour des raisons de compatibilité!

Je vous suggère de formater le lecteur en utilisant le même système de fichiers que celui à partir duquel vous rsynchronisez, sinon vous perdrez potentiellement les autorisations et les attributs définis sur vos fichiers et répertoires.

FAT (probablement FAT32) pourrait être problématique en raison des tailles de fichier maximales (4 Go), des tailles de volume maximales (2 To - un jour de toute façon!), De la fragmentation, etc.

Cependant, si rien de tout cela n'a d'importance et que vous voulez juste un système de fichiers compatible simple, rapide et maximal, alors FAT sera OK. En termes de vitesse, en raison du manque de journalisation, d'autorisations, etc., FAT pourrait éventuellement dépasser les alternatives - NTFS / Ext3 / HFS ...

Jon Rhoades
la source
1

Y a-t-il une raison pour laquelle vous utilisez le lecteur FAT? Rsync devrait fonctionner pour enregistrer les données, mais vous perdrez des méta-informations sur les fichiers ... la propriété, les autorisations, etc.

Performance Je ne peux pas commenter, je n'ai jamais fait de tests comparatifs avec les autres. J'imagine que cela a aussi beaucoup à voir avec les propres spécifications du lecteur ainsi qu'avec le système de fichiers à cet égard.

Si vous le pouviez , je reformaterais au format natif que vous prévoyez d'utiliser avec l'ordinateur (OS X? Linux?), Ne serait-ce que pour conserver les métadonnées et perdre la claque sur le front dans quelques mois à la fin synchroniser quelque chose qui génère des erreurs en raison des limitations du système de fichiers. souvent, le partage avec d'autres systèmes peut se faire via le partage d'exportations ou si vous utilisez NTFS, vous pouvez conserver certaines métadonnées mais toujours obtenir la compatibilité inter-systèmes la plus importante car Mac, NT et Linux prennent tous en charge la capacité NTFS R / W maintenant.

Bart Silverstrim
la source