Option rsync étrange
#1

Salut,
Je suis en train de me refaire mes sauvegardes et je suis tombé (aïe) sur une option de rsync que j'ai du mal a comprendre :

Le man en Fr est des plus obscure et perd toute la signification de l'option :
Code :
-S, --sparse                turn sequences of nulls into sparse blocks

Le man en est un peu plus locace mais j'ai toujours du mal a comprendre ce que ça veux dire en pratique :
Code :
-S, --sparse                turn sequences of nulls into sparse blocks

Vous pouvez éclairer ma lanterne ?

« La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. » Antoine de Saint-Exupéry
Répondre
#2

Nope, pas d'explication satisfaisante à donner... :/
Répondre
#3

Salut,

Tu parles de rsync et non de openrsync, donc probablement la version Gnu/Linux et non OpenBDD ?

Voilà ce que j'ai pu trouver :
Citation :-S, --sparse

Essaie de traiter les fichiers à trous efficacement, de sorte qu'ils prennent moins de place sur la destination. [NDT : sparse file = fichier à trous]NOTE : N'utilisez pas cette option lorsque la destination est un système de fichiers «tmpfs» Solaris. Il semble qu'il ne traite pas les déplacements au-dessus de zones vides et cela entraîne des corruptions de fichiers.

Source : man en français de linuxcertif.com.
Répondre
#4

Merci Jibe, en effet c'est un peu plus clair, mais cette notion de fichier a trou me semble encore étrange …
Oui c'est bien pour la version Gnu, même si je ne savais pas que OpenBSD avait refait une implémentation.

« La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. » Antoine de Saint-Exupéry
Répondre
#5

Salut @Mimoza,

Oui, OpenBSD propose OpenRsync qui est l'équivalent de rsync, avec quelques variantes entre autres cette fameuse option -S --sparse qui manque.

Concernant ces fameux "fichiers à trous", j'ai tendance à interpréter cela comme des fichiers répartis sur plusieurs unités d'allocation, certaines (et pas seulement la dernière) n'étant pas complètement remplies, suite par exemple à des suppressions dans le fichier d'origine (fragmentation). Bon, ça reste mon interprétation personnelle -> à vérifier !

N'empêche que, si on en croit le man, on essaie bien avec cette option de sauter des parties vides pour obtenir un fichier de destination moins gros.

Je n'ai jamais utilisé cette option (il y en a tant que je ne l'avais même pas remarquée !), mais elle me semble intéressante ! Si j'arrive à trouver un de ces "fichiers à trous" (difficile je pense avec nos filesystems qui évitent un max la fragmentation... Probablement utile pour des fichiers FAT32, voire NTFS...), j'essaierai pour voir. Cela dit, comme nous ne sommes pas sous Solaris, je pense qu'il n'y a pas d'inconvénient à ajouter cette option systématiquement. À voir...

Bon, si quelqu'un a des infos, suggestions ou commentaires, nous sommes preneurs !
Répondre
#6

Un fichier "sparse" c'est un fichier créé qui est vide, on utilise ce genre de fichiers pour les disques de machines virtuels.

Par exemple ici je créé un fichier de 20 Go, sauf que sur le disque, il prend physiquement 96k car y a juste du vide dedans, c'est un fichier "sparse"

Code :
solene@t480 ~ $ vmctl create -s 20G test.raw
vmctl: raw imagefile created
solene@t480 ~ $ ls -lh test.raw
-rw-------  1 solene  solene  20.0G Apr  5 14:22 test.raw
solene@t480 ~ $ du -h test.raw
96.0K  test.raw

au fur et à mesure que ce fichier sera manipulé (en tant que disque de machine virtuelle), il va prendre de plus en plus de place jusqu'à faire 20 Go sur le disque.
Répondre
#7

Ok, merci pour ces explications, @solene Smile 

Donc, j'avais tout faux Dodgy Sad
Répondre
#8

Merci Solene.
Jibe je pense que ton interprétation n'est pas forcément fausse, il y a sûrement plusieurs moyens d'obtenir ces fichiers troués.

« La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. » Antoine de Saint-Exupéry
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)