Problèmes avec Rsync et FAT32

Bonjour,
J’ai un script rsync de ce type :

#! /bin/sh REPERTOIRE_DESTINATION="/media/1633-F71E" MUSIQUE="/home/chris/Musique/Transfert/" DATE=`date +%d%m` sleep 2 rsync -avz --delete --force --ignore-errors $MUSIQUE "$REPERTOIRE_DESTINATION" sleep 2 exit

Mon problème est que rsync ne fait plus l’incrémentation, je m’explique, si je fais des ajouts ou des suppréssions de fichier, lors du lancement de ce script, rsync travail comme ci il s’agissait de la première fois, il balaye tout .

Ce problème ne survient que si je débranche/rebranche mon “média”, si le média reste connecté et que je lance le script, alors rsync fait bien le changement des fichiers uniquement modifiés :confused: :stuck_out_tongue: .

[PS] Je précise que ce script fonctionnait très bien depuis un certain temps .

Merci

Salut,

Tu es sûr de la nécessité du --delete ?

[quote=“ggoodluck47”]Salut,

Tu es sûr de la nécessité du --delete ?[/quote]
Ce n’est pas le problème …

Je ne connais pas ‘ignore’ , j’utilise '–exclude’
es-tu sûr d’être obligé d’employer --force ?
Si ça peut te donner une idée, voilà (en raccourci), ma ligne d ecommande de sauvegarde de la racine /:
rsync -av --del --backup --exclude-from=/root/exclure / /mnt/sauve

[quote=“ricardo”]Je ne connais pas ‘ignore’ , j’utilise '–exclude’
es-tu sûr d’être obligé d’employer --force ?
Si ça peut te donner une idée, voilà (en raccourci), ma ligne d ecommande de sauvegarde de la racine /:
rsync -av --del --backup --exclude-from=/root/exclure / /mnt/sauve[/quote]

Extrait du man :

–ignore-errors = Si le côté envoi détecte des erreurs d'entrée/sortie (E/S), alors l'effacement des fichiers côté destination est automatiquement désactivé. Ceci prévient des échecs temporaires de système de fichiers (comme les erreurs NFS) du côté envoi causant une destruction massive de fichiers côté destination. Vous pouvez passer outre ceci avec l'option --ignore-errors

–force =

Rsync compare les fichiers à la volée ou bien il crée un fichier qu’il place autre part ? si oui ou ?

Je pense avoir trouvé une parade, mon média est formaté en FAT32, il semblerai qu’il subsiste un bogue sous rsync :

Je n’ai trouvé aucuns examples via google avec cette option, j’ai mis au hasard un nombre à 3 chiffres et cela fonctionne, ceci dit j’avais à priori formaté en faisant :

dd if=/dev/zero of=/dev/sde1 puis :

mkdosfs -F32 -v -n /dev/sde1 c’est pas compatible ?

Je remonte, car finalement cette solution ne fonctionne toujours pas, rsync me balaye mes fichiers au hasard …

Une grosse idée me serait bienvenue

Réponse après longtemps. J’ai eu le même souci, et apparemment le problème vient de l’option -a, qui revient à faire -rlptgoD. Et l’option -o change les droits ce qui pose souci.
Du coup, on peut remplacer -a par -rt et ça doit suffire.

Source :

andrewboring.com/technotes/r … t32-drives

[quote=“chris38”]Je pense avoir trouvé une parade, mon média est formaté en FAT32, il semblerai qu’il subsiste un bogue sous rsync :

Je n’ai trouvé aucuns examples via google avec cette option, j’ai mis au hasard un nombre à 3 chiffres et cela fonctionne, [/quote]

$ man rsync
Passage en question :

--modify-window When comparing two timestamps, rsync treats the timestamps as being equal if they differ by no more than the modify-window value. This is normally 0 (for an exact match), but you may find it useful to set this to a larger value in some situations. In particular, when transferring to or from an MS Windows FAT filesystem (which rep‐ resents times with a 2-second resolution), --modify-window=1 is useful (allowing times to differ by up to 1 second).

D’après cet extrait, FAT32 daterait les fichiers avec deux secondes de battement ce qui entrainerait une différence détectée par rsync entre la date du fichier d’origine et celle du fichier cible.