Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

rsync : exécution un peu longue à mon goût, pourquoi ?

12 réponses
Avatar
Francois Lafont
Bonjour à tous,

Je suis sous Debian Squeeze en 64 bit. J'ai une clé usb formatée en
fat32 qui me sert à sauvegarder les donnés essentielles de mon home. Une
fois que j'ai inséré la clé usb, je lance un petit script maison qui me
sauvegarde certains dossiers sur la clé. Le script consiste en ça :

------------------------------------------------------
rsync -axh --delete --progress --modify-window=2 \
"$HOME/dossier1/" "/media/KEYSAVE/save/dossier1/"

rsync -axh --delete --progress --modify-window=2 \
"$HOME/dossier2/" "/media/KEYSAVE/save/dossier2/"

# etc.
# Puis pour finir :
sync
------------------------------------------------------

J'utilise ce script 2 ou 3 fois par semaines. Et à chaque fois lors
d'une sauvegarde, 98% (au « pifomètre ») des fichiers de la cible (la
clé usb donc) sont inchangés. Pourtant, mon script met du temps je
trouve, comparativement aux modifications assez peu nombreuses à faire
en général. Je vois défiler sur ma console la liste de tous les dossiers
(les sous-dossiers etc.) lorsque le script s'exécute et parfois au
niveau d'un dossier où il n'y absolument aucune modification à apporter,
ça se bloque une minute ou 2, puis ça reprend et tout se termine
normalement. Mon script s'exécute sans erreur à chaque fois.

Chose qui m'intrigue encore plus : quand je relance une deuxième fois le
script juste après une première exécution. Alors là, forcément, il y a 0
changement à effectuer sur la cible et d'ailleurs je vois bien la liste
de tous les dossiers (les sous-dossiers etc.) défiler à toute vitesse.
Mais dès qu'arrive l'exécution de la commande finale « sync », là je
dois attendre une bonne longue minute (voire un peu plus) avant que ça
se termine et que j'ai à nouveau le prompt, alors que sur la cible il
n'y a eu absolument *aucune* modification à apporter. Comment cela se
fait-il ?

Voici quelques éléments utiles peut-être :
- mon /home est monté sur une partition séparée en ext4 (partition qui
est seule sur le disque).
- ma clé est en fat32
- l'ensemble des données sauvegardées sur la clé occupe 2.5 Go environ.

Merci d'avance pour votre aide.


--
François Lafont

2 réponses

1 2
Avatar
Francois Lafont
Bonjour à tous,

Désolé pour ma réponse tardive j'ai été assez pris par le travail.

La solution de mon problème a été donnée par Fabien Le Lez (merci au
passage ;-)) qui a proposé de remplacer l'option -a par seulement -rt
dans le cas où la cible est en FAT32.

Depuis, ça va beaucoup mieux, dans le sens où l'exécution est vraiment
rapide quand les modifications sont peu nombreuses. D'ailleurs, lors
d'une deuxième exécution (où il y a alors aucune modification),
contrairement à avant (ie avec l'option -a), je ne vois plus défiler
l'ensemble des dossiers. Comme le signalait Lucas Levrel, si rsync
affiche un dossier c'est qu'il le trouve modifié. Du coup, avant (avec
l'option -a), comme je voyais tous les dossiers s'afficher, c'est que
rsync cherchait à les modifier tous et du coup le script se déroulait
lentement. En fait, d'après ce que j'ai compris, il cherchait à modifier
les permissions sur la cible en vain.

En effet, j'ai regardé la page man et l'option -a signifie -rlptgoD et
dedans c'était a priori -p qui ralentissait tout. En fait,
invariablement sur ma clé en FAT32, j'ai des droits unix de la forme :

- 700 pour les dossiers
- 644 pour les fichiers

Et un chmod (en root ou non) n'y change strictement rien. Honnêtement,
j'ignore ce qui existe en terme de droits (et ce qui n'existe pas) sur
du FAT32 par rapport à du ext3 ou du ext4.

Du côté de la source (partitionnée en ext4), j'ai généralement des
dossiers en 755. Du coup, je pense qu'à chaque fois que je lançais mes
commandes rsync (avec l'option -a donc), rsync devait sans doute
chercher à modifier les droits de tous les dossiers... en vain. Du coup,
ça ralentissement pour rien la sauvegarde.

En revanche, là où je ne m'explique pas les choses, c'est pour les
fichiers (ceux qui ne sont pas des dossiers). En effet, si j'ai côté
source un fichier avec les droits 777, une fois copié avec « rsync -a »
sur ma clé en FAT32, je le retrouve avec les droits 644. Jusque là c'est
normal car manifestement tous les fichiers sont en 644 sur ma clé. Mais
ce que je ne m'explique pas, c'est que je devrais voir affiché ce
fichier à chaque fois que « rsync -a » est exécutée puisque rsync
devrait voir que les droits ne sont pas identiques, tout comme il le
fait pour les dossiers. Or il n'en est rien.

Mais bon, mon problème est bel et bien résolu. Merci à tous pour votre aide.

--
François Lafont
Avatar
Fabien LE LEZ
On Tue, 24 Jan 2012 18:10:00 +0100, Francois Lafont
:

j'ignore ce qui existe en terme de droits (et ce qui n'existe pas) sur
du FAT32 par rapport à du ext3 ou du ext4.



À peu près rien. Il peut y avoir des droits simulés par mount, mais
dans ce cas ce sont les mêmes droits pour tous les fichiers de la
partition.
1 2