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

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Luc.Habert.00__arjf
Le #24178561
Francois Lafont :

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.



Combien de fichiers as-tu? Si tu en as beaucoup, le simple fait de passer en
revue les fichiers pour obtenir leur taille et date de modif (ce que fait
rsync pour décider si il faut sauvegarder) peut expliquer la lenteur.

Tu peux tester avec strace pour voir ce que fait rsync.

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.



J'imagine que les métadonnées sont dans le cache du filesystem, donc ça va
largement plus vite.

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.



Peut-être que le noyau met à jour la date de dernier accès aux fichers et
répertoires. Est-ce que ta clef est montée avec noatime?
Francois Lafont
Le #24178681
Salut,

Le 19/01/2012 23:57, Luc Habert a écrit :

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.



Combien de fichiers as-tu?



$ find /media/KEYSAVE/save/ -type f | wc -l
8963

Si tu en as beaucoup, le simple fait de passer en
revue les fichiers pour obtenir leur taille et date de modif (ce que fait
rsync pour décider si il faut sauvegarder) peut expliquer la lenteur.



Je pensais qu'il se contentait de regarder la date modif uniquement, non ?

Tu peux tester avec strace pour voir ce que fait rsync.



Encore lui... décidément. :-)
Bon, le fichier ne fait que 469 lignes. Je me permets de le poster en
fin de message. Perso, ça ne me parle pas trop encore une 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.



J'imagine que les métadonnées sont dans le cache du filesystem, donc ça va
largement plus vite.



Plutôt qu'une histoire de cache, je pensais que la rapidité lors de
cette phase du script s'expliquait tout simplement par l'absence de
fichier à modifier.

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.



Peut-être que le noyau met à jour la date de dernier accès aux fichers et
répertoires. Est-ce que ta clef est montée avec noatime?



Ah, ça pourrait expliquer. En fait, je n'ai absolument rien paramétré au
niveau du montage de ma clé. Je suis sous Gnome 2.3 et je crois qu'il
s'occupe lui-même de monter ma clé automatiquement dès que je la
branche. J'ai ça ensuite :

$ mount | grep KEYSAVE
/dev/sdc on /media/KEYSAVE type vfat
(rw,nosuid,nodev,uhelper=udisks,uid00,gid00,shortname=mixed,dmask77,utf8=1,showexec,flush)

A priori pas d'option noatime donc. J'ai alors démonté la clé sous root
avec la commande umount puis je l'ai remontée avec la commande :

mount -t vfat /dev/sdc /media/KEYSAVE/ -o
noatime,rw,nosuid,nodev,uhelper=udisks,uid00,gid00,shortname=mixed,dmask77,utf8=1,showexec,flush

Mais je n'ai pas constaté d'amélioration notable ensuite. Par exemple,
après une deuxième exécution du script, tout a défilé très vite sans que
la moindre modif ne soit faite (comme avant sans l'option noatime), mais
au moment de la commande sync je me retrouve avec une attente de une ou
deux minutes (comme avant sans l'option noatime).


Contenu de "out" après l'exécution de :
strace -o out Sauvegarde_cle_usb.bash

-------------------------------------------------------
execve("/home/francois/MesDocs/bin/Sauvegarde_cle_usb.bash",
["Sauvegarde_cle_usb.bash"], [/* 41 vars */]) = 0
brk(0) = 0x15c5000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or
directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x7f55fe48d000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size™718, ...}) = 0
mmap(NULL, 99718, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f55fe474000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or
directory)
open("/lib/libncurses.so.5", O_RDONLY) = 3
read(3,
"177ELF2113>120*1"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size(6776, ...}) = 0
mmap(NULL, 2383488, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
0) = 0x7f55fe02c000
mprotect(0x7f55fe06e000, 2093056, PROT_NONE) = 0
mmap(0x7f55fe26d000, 20480, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x41000) = 0x7f55fe26d000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or
directory)
open("/lib/libdl.so.2", O_RDONLY) = 3
read(3,
"177ELF2113>1340r"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size696, ...}) = 0
mmap(NULL, 2109696, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
0) = 0x7f55fde28000
mprotect(0x7f55fde2a000, 2097152, PROT_NONE) = 0
mmap(0x7f55fe02a000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f55fe02a000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or
directory)
open("/lib/libc.so.6", O_RDONLY) = 3
read(3,
"177ELF2113>1`3551"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size32968, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x7f55fe473000
mmap(NULL, 3541032, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
0) = 0x7f55fdac7000
mprotect(0x7f55fdc1f000, 2093056, PROT_NONE) = 0
mmap(0x7f55fde1e000, 20480, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x157000) = 0x7f55fde1e000
mmap(0x7f55fde23000, 18472, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f55fde23000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x7f55fe472000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x7f55fe471000
arch_prctl(ARCH_SET_FS, 0x7f55fe472700) = 0
mprotect(0x7f55fde1e000, 16384, PROT_READ) = 0
mprotect(0x7f55fe02a000, 4096, PROT_READ) = 0
mprotect(0x7f55fe48f000, 4096, PROT_READ) = 0
munmap(0x7f55fe474000, 99718) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
open("/dev/tty", O_RDWR|O_NONBLOCK) = 3
close(3) = 0
brk(0) = 0x15c5000
brk(0x15c6000) = 0x15c6000
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size27584, ...}) = 0
mmap(NULL, 1527584, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f55fe2fc000
close(3) = 0
brk(0x15c7000) = 0x15c7000
brk(0x15c8000) = 0x15c8000
getuid() = 1000
getgid() = 1000
geteuid() = 1000
getegid() = 1000
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
brk(0x15c9000) = 0x15c9000
open("/proc/meminfo", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x7f55fe48c000
read(3, "MemTotal: 6121888 kBnMemF"..., 1024) = 1024
close(3) = 0
munmap(0x7f55fe48c000, 4096) = 0
brk(0x15ca000) = 0x15ca000
rt_sigaction(SIGCHLD, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGCHLD, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigaction(SIGQUIT, {SIG_IGN, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
uname({sys="Linux", node="flpc", ...}) = 0
brk(0x15cb000) = 0x15cb000
brk(0x15cc000) = 0x15cc000
brk(0x15cd000) = 0x15cd000
stat("/home/francois/Bureau", {st_mode=S_IFDIR|0755, , ...}) = 0
stat(".", {st_mode=S_IFDIR|0755, , ...}) = 0
getpid() = 3399
brk(0x15ce000) = 0x15ce000
open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size&048, ...}) = 0
mmap(NULL, 26048, PROT_READ, MAP_SHARED, 3, 0) = 0x7f55fe486000
close(3) = 0
brk(0x15cf000) = 0x15cf000
getppid() = 3398
brk(0x15d0000) = 0x15d0000
getpgrp() = 3398
rt_sigaction(SIGCHLD, {0x444090, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
getrlimit(RLIMIT_NPROC, {rlim_cur=RLIM_INFINITY,
rlim_max=RLIM_INFINITY}) = 0
brk(0x15d1000) = 0x15d1000
brk(0x15d2000) = 0x15d2000
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
open("/home/francois/MesDocs/bin/Sauvegarde_cle_usb.bash", O_RDONLY) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff01061590) = -1 ENOTTY
(Inappropriate ioctl for device)
lseek(3, 0, SEEK_CUR) = 0
read(3, "#!/bin/bashnndossier_sauvegarde="..., 80) = 80
lseek(3, 0, SEEK_SET) = 0
getrlimit(RLIMIT_NOFILE, {rlim_cur24, rlim_max24}) = 0
fcntl(255, F_GETFD) = -1 EBADF (Bad file descriptor)
dup2(3, 255) = 255
close(3) = 0
fcntl(255, F_SETFD, FD_CLOEXEC) = 0
fcntl(255, F_GETFL) = 0x8000 (flags
O_RDONLY|O_LARGEFILE)
fstat(255, {st_mode=S_IFREG|0744, st_size12, ...}) = 0
lseek(255, 0, SEEK_CUR) = 0
brk(0x15d3000) = 0x15d3000
brk(0x15d4000) = 0x15d4000
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(255, "#!/bin/bashnndossier_sauvegarde="..., 1812) = 1812
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
brk(0x15d5000) = 0x15d5000
brk(0x15d6000) = 0x15d6000
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
brk(0x15d7000) = 0x15d7000
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
stat("/media/KEYSAVE/save", {st_mode=S_IFDIR|0700, , ...}) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
stat(".", {st_mode=S_IFDIR|0755, , ...}) = 0
stat("/home/francois/texlive2011/bin/x86_64-linux/rsync",
0x7fff01061010) = -1 ENOENT (No such file or directory)
stat("/usr/local/bin/rsync", 0x7fff01061010) = -1 ENOENT (No such file
or directory)
stat("/usr/bin/rsync", {st_mode=S_IFREG|0755, st_size98336, ...}) = 0
stat("/usr/bin/rsync", {st_mode=S_IFREG|0755, st_size98336, ...}) = 0
geteuid() = 1000
getegid() = 1000
getuid() = 1000
getgid() = 1000
access("/usr/bin/rsync", X_OK) = 0
stat("/usr/bin/rsync", {st_mode=S_IFREG|0755, st_size98336, ...}) = 0
geteuid() = 1000
getegid() = 1000
getuid() = 1000
getgid() = 1000
access("/usr/bin/rsync", R_OK) = 0
stat("/usr/bin/rsync", {st_mode=S_IFREG|0755, st_size98336, ...}) = 0
stat("/usr/bin/rsync", {st_mode=S_IFREG|0755, st_size98336, ...}) = 0
geteuid() = 1000
getegid() = 1000
getuid() = 1000
getgid() = 1000
access("/usr/bin/rsync", X_OK) = 0
stat("/usr/bin/rsync", {st_mode=S_IFREG|0755, st_size98336, ...}) = 0
geteuid() = 1000
getegid() = 1000
getuid() = 1000
getgid() = 1000
access("/usr/bin/rsync", R_OK) = 0
brk(0x15d8000) = 0x15d8000
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
lseek(255, -816, SEEK_CUR) = 996
clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7f55fe4729d0) = 3400
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3400
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7fff01060cdc, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(255, "sauvegarde "$HOME/MesDocs/inform"..., 1812) = 816
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
lseek(255, -742, SEEK_CUR) = 1070
clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7f55fe4729d0) = 3406
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3406
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7fff01060cdc, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(255, "sauvegarde "$HOME/MesDocs/bin/" "..., 1812) = 742
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
lseek(255, -683, SEEK_CUR) = 1129
clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7f55fe4729d0) = 3409
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3409
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7fff01060cdc, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(255, "sauvegarde "$HOME/MesDocs/latexP"..., 1812) = 683
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
lseek(255, -610, SEEK_CUR) = 1202
clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7f55fe4729d0) = 3412
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3412
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7fff01060cdc, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(255, "sauvegarde "$HOME/MesDocs/notes_"..., 1812) = 610
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
lseek(255, -523, SEEK_CUR) = 1289
clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7f55fe4729d0) = 3415
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3415
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7fff01060cdc, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(255, "sauvegarde "$HOME/MesDocs/papera"..., 1812) = 523
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
lseek(255, -450, SEEK_CUR) = 1362
clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7f55fe4729d0) = 3418
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3418
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7fff01060cdc, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(255, "sauvegarde "$HOME/MesDocs/login_"..., 1812) = 450
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
lseek(255, -371, SEEK_CUR) = 1441
clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7f55fe4729d0) = 3421
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3421
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7fff01060cdc, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(255, "sauvegarde "$HOME/.mozilla/" "$d"..., 1812) = 371
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
lseek(255, -306, SEEK_CUR) = 1506
clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7f55fe4729d0) = 3424
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3424
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7fff01060cdc, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(255, "sauvegarde "$HOME/Bureau/" "$dos"..., 1812) = 306
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
lseek(255, -249, SEEK_CUR) = 1563
clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7f55fe4729d0) = 3427
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3427
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7fff01060cdc, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(255, "sauvegarde "$HOME/.local/share/g"..., 1812) = 249
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
lseek(255, -185, SEEK_CUR) = 1627
clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7f55fe4729d0) = 3430
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3430
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7fff01060cdc, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(255, "ncp "$HOME/.bashrc" "$dossier_sa"..., 1812) = 185
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
stat(".", {st_mode=S_IFDIR|0755, , ...}) = 0
stat("/home/francois/texlive2011/bin/x86_64-linux/cp", 0x7fff01061390) -1 ENOENT (No such file or directory)
stat("/usr/local/bin/cp", 0x7fff01061390) = -1 ENOENT (No such file or
directory)
stat("/usr/bin/cp", 0x7fff01061390) = -1 ENOENT (No such file or
directory)
stat("/bin/cp", {st_mode=S_IFREG|0755, st_size8432, ...}) = 0
stat("/bin/cp", {st_mode=S_IFREG|0755, st_size8432, ...}) = 0
geteuid() = 1000
getegid() = 1000
getuid() = 1000
getgid() = 1000
access("/bin/cp", X_OK) = 0
stat("/bin/cp", {st_mode=S_IFREG|0755, st_size8432, ...}) = 0
geteuid() = 1000
getegid() = 1000
getuid() = 1000
getgid() = 1000
access("/bin/cp", R_OK) = 0
stat("/bin/cp", {st_mode=S_IFREG|0755, st_size8432, ...}) = 0
stat("/bin/cp", {st_mode=S_IFREG|0755, st_size8432, ...}) = 0
geteuid() = 1000
getegid() = 1000
getuid() = 1000
getgid() = 1000
access("/bin/cp", X_OK) = 0
stat("/bin/cp", {st_mode=S_IFREG|0755, st_size8432, ...}) = 0
geteuid() = 1000
getegid() = 1000
getuid() = 1000
getgid() = 1000
access("/bin/cp", R_OK) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
lseek(255, -131, SEEK_CUR) = 1681
clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7f55fe4729d0) = 3433
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3433
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7fff0106105c, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(255, "cp "$HOME/.profile" "$dossier_sa"..., 1812) = 131
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
lseek(255, -76, SEEK_CUR) = 1736
clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7f55fe4729d0) = 3434
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3434
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7fff0106105c, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(255, "nnecho ""necho "Ex303251cution de la"..., 1812) = 76
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
write(1, "n", 1) = 1
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
write(1, "Ex303251cution de la commande sync, "..., 54) = 54
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
stat(".", {st_mode=S_IFDIR|0755, , ...}) = 0
stat("/home/francois/texlive2011/bin/x86_64-linux/sync", 0x7fff01061390)
= -1 ENOENT (No such file or directory)
stat("/usr/local/bin/sync", 0x7fff01061390) = -1 ENOENT (No such file or
directory)
stat("/usr/bin/sync", 0x7fff01061390) = -1 ENOENT (No such file or
directory)
stat("/bin/sync", {st_mode=S_IFREG|0755, st_size'456, ...}) = 0
stat("/bin/sync", {st_mode=S_IFREG|0755, st_size'456, ...}) = 0
geteuid() = 1000
getegid() = 1000
getuid() = 1000
getgid() = 1000
access("/bin/sync", X_OK) = 0
stat("/bin/sync", {st_mode=S_IFREG|0755, st_size'456, ...}) = 0
geteuid() = 1000
getegid() = 1000
getuid() = 1000
getgid() = 1000
access("/bin/sync", R_OK) = 0
stat("/bin/sync", {st_mode=S_IFREG|0755, st_size'456, ...}) = 0
stat("/bin/sync", {st_mode=S_IFREG|0755, st_size'456, ...}) = 0
geteuid() = 1000
getegid() = 1000
getuid() = 1000
getgid() = 1000
access("/bin/sync", X_OK) = 0
stat("/bin/sync", {st_mode=S_IFREG|0755, st_size'456, ...}) = 0
geteuid() = 1000
getegid() = 1000
getuid() = 1000
getgid() = 1000
access("/bin/sync", R_OK) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7f55fe4729d0) = 3435
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0},
{SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3435
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7fff0106105c, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f55fdaf91e0},
{0x441ea0, [], SA_RESTORER, 0x7f55fdaf91e0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(255, "", 1812) = 0
exit_group(0) = ?
-------------------------------------------------------

--
François Lafont
Luc.Habert.00__arjf
Le #24178741
Francois Lafont :

$ find /media/KEYSAVE/save/ -type f | wc -l
8963



Bon, c'est pas rien mais pas énorme non plus.

Je pensais qu'il se contentait de regarder la date modif uniquement, non ?



La page de man parle de la taille aussi (mais les deux s'obtiennent en même
temps, ça ne fait pas plus de travail à la clef).

Bon, le fichier ne fait que 469 lignes. Je me permets de le poster en
fin de message. Perso, ça ne me parle pas trop encore une fois.



Je pensais au strace d'un rsync. Là, c'est le strace du script, et, sans
l'option -f, strace ne trace pas les processus fils, donc il n'y a rien
d'intéressant. Tiens, maintenant que j'y pense, ce serait bien d'ajouter
l'option -tt pour voir le temps pris par les systèmes appels.

Plutôt qu'une histoire de cache, je pensais que la rapidité lors de
cette phase du script s'expliquait tout simplement par l'absence de
fichier à modifier.



Il faut quand même le déterminer, qu'il n'y a pas de fichiers à modifier.

A priori pas d'option noatime donc. J'ai alors démonté la clé sous root
avec la commande umount puis je l'ai remontée avec la commande :

mount -t vfat /dev/sdc /media/KEYSAVE/ -o
noatime,rw,nosuid,nodev,uhelper=udisks,uid00,gid00,shortname=mixed,dmask77,utf8=1,showexec,flush

Mais je n'ai pas constaté d'amélioration notable ensuite.



Grmbl. Bon, la réponse est peut-être dans le strace, sinon, je n'ai pas plus
d'idée.
Sergio
Le #24178961
Le Thu, 19 Jan 2012 22:57:21 +0000, Luc Habert a écrit :

Peut-être que le noyau met à jour la date de dernier accès aux fichers
et répertoires. Est-ce que ta clef est montée avec noatime?



Ça marche le "atime" avec le FAT32 ?

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Lucas Levrel
Le #24179151
Le 20 janvier 2012, Francois Lafont a écrit :

A priori pas d'option noatime donc. J'ai alors démonté la clé sous root
avec la commande umount puis je l'ai remontée avec la commande :

mount -t vfat /dev/sdc /media/KEYSAVE/ -o
noatime,rw,nosuid,nodev,uhelper=udisks,uid00,gid00,shortname=mixed,dmask77,utf8=1,showexec,flush

Mais je n'ai pas constaté d'amélioration notable ensuite. Par exemple,
après une deuxième exécution du script, tout a défilé très vite sans que
la moindre modif ne soit faite (comme avant sans l'option noatime), mais
au moment de la commande sync je me retrouve avec une attente de une ou
deux minutes (comme avant sans l'option noatime).



Tu pourrais essayer de monter avec l'option sync, et de virer la commande
du script.

Aussi, le fait que le script « traîne » sur cette commande ne veut pas
dire qu'elle est en cause. J'ai remarqué pendant l'exécution d'rsync que
le listage des fichiers traités s'arrête parfois plusieurs secondes alors
que la dernière ligne affichée est un tout petit fichier ! J'en ai déduit
que la cause est la synchronisation de tout ce qui avait été affiché
avant.

D'après le man, si rsync affiche un dossier c'est qu'il le trouve modifié.
Non ? Essaye aussi l'option de montage nodiratime.

--
LL
Fabien LE LEZ
Le #24179201
On Thu, 19 Jan 2012 23:20:34 +0100, Francois Lafont

rsync -axh --delete --progress --modify-window=2



Si tu utilises une clé en FAT, as-tu vraiment besoin de -a ?
-rt devrait suffire.

Chronomètre le script avec l'option -n. S'il prend autant de temps,
c'est que c'est la lecture qui est longue (probablement, la lecture de
la liste des fichiers sur la clé). S'il est très rapide, c'est que
c'est l'écriture des modifications qui est longue.
Bien sûr, enlève puis remets la clé après chaque test, afin d'éviter
que le cache intervienne.
Luc.Habert.00__arjf
Le #24179531
Sergio :

Ça marche le "atime" avec le FAT32 ?



Oui. C'est le ctime qui n'a pas d'équivalent en fat.
Nicolas George
Le #24179621
Luc Habert, dans le message
Ça marche le "atime" avec le FAT32 ?


Oui. C'est le ctime qui n'a pas d'équivalent en fat.



FAT n'a qu'un timestamp, il est utilisé pour le mtime. Ce que je dis est
valable pour FAT12 et FAT16, je ne sais pas pour FAT32, mais ça m'étonnerait
vraiment qu'ils aient ajouté un timestamp.
moi-meme
Le #24179841
Le Thu, 19 Jan 2012 22:57:21 +0000, Luc Habert a écrit :

Combien de fichiers as-tu? Si tu en as beaucoup, le simple fait de
passer en revue les fichiers pour obtenir leur taille et date de modif
(ce que fait rsync pour décider si il faut sauvegarder) peut expliquer
la lenteur.



si je mets un sync derrière la commande rsync (sur une clé USB aussi), il
se passe un temps non négligeable pour que sync se termine.

J'en ai déduit (ai-je raison ?) que c'est le temps du vidage du tampon de
la clé USB.

Par contre je n'ai pas le problème sur mon NAS. Sans doute qu'il n'y a pas
de tampon dans ce cas (liaison par SAMBA).
Luc.Habert.00__arjf
Le #24179901
moi-meme :

si je mets un sync derrière la commande rsync (sur une clé USB aussi), il
se passe un temps non négligeable pour que sync se termine.

J'en ai déduit (ai-je raison ?) que c'est le temps du vidage du tampon de
la clé USB.



Oui. Tu as le meme effet avec un umount.

Par contre je n'ai pas le problème sur mon NAS. Sans doute qu'il n'y a pas
de tampon dans ce cas (liaison par SAMBA).



J'ose espérer qu'il y a du cache aussi, mais il est peut-etre de taille plus
limitée.
Publicité
Poster une réponse
Anonyme