J'utilise rsnapshot pour créer des sauvegardes horaires / quotidiennes / hebdomadaires / mensuelles de mon partage "professionnel". Maintenant, j'essaie de copier tout le répertoire de sauvegarde sur un disque externe en utilisant rsync.
J'ai utilisé cette commande / paramètres dans une session d'écran (oui, le rsync-exclude.txt se trouve dans le répertoire à partir duquel je lance la commande)
rsync -avzHP --exclude-from 'rsync-exclude.txt' /share/backup/ /share/eSATADisk1/backup/;
Le tout fonctionne sur un QNAP TS-439, le disque interne est un disque unique (pas de RAID) formaté EXT4, le disque externe est formaté EXT3.
Ce qui se passe est: Rsync suit chaque lien dur et copie le fichier réel au lieu de recréer le lien dur mis à jour sur le disque externe. Je ne l'ai pas reconnu tout de suite, donc le disque dur externe a fini par être mis à la poubelle avec xxx copies des mêmes fichiers.
Ce que je veux réaliser, c'est: Copier toute la structure de fichiers générée par rsnapshot sur le disque externe en gardant les liens physiques pour économiser de l'espace. Remarque: Cela ne doit pas nécessairement être fait à l'aide de rsync.
Merci pour vos idées et votre temps. J'apprécierais votre aide, grand temps.
Mise à jour: j'ai appris que rsnapshot n'utilise pas de liens symboliques, il utilise des liens durs, donc j'utilise maintenant l'option -H qui devrait préserver la structure de liens durs selon Rsnapshot vers plusieurs destinations (ou maintenir la structure de liens durs) mais cela ne fonctionnera toujours pas ... Qu'est-ce que j'oublie ici?
Mise à jour 2: j'ai trouvé une autre opinion / déclaration sur ce sujet ici: rsync avec --hard-links se bloque Steven Monday suggère de ne pas essayer de rsync les structures de gros fichiers contenant des liens durs , car cela absorbe beaucoup de mémoire et est une tâche difficile pour rsync. Donc, probablement une meilleure solution serait de créer un .img de la structure de données que j'essaie de sauvegarder. Qu'est-ce que tu penses?
Réponses:
La
rsync
de commande-H
(ou--hard-links
option) sera, en théorie, faire ce que vous essayez d'accomplir, ce qui est, en bref: pour créer une copie de votre système de fichiers qui préserve la structure liée dur de l'original. Comme je l'ai mentionné dans ma réponse à une autre question similaire , cette option est vouée à l'échec une fois que votre système de fichiers source a dépassé un certain seuil de complexité des liens matériels.L'emplacement précis de ce seuil peut dépendre de votre RAM et du nombre total de liens durs (et probablement d'un certain nombre d'autres choses), mais j'ai trouvé qu'il était inutile d'essayer de le définir avec précision. Ce qui importe vraiment , c'est que le seuil soit trop facile à franchir dans des situations du monde réel, et vous ne saurez pas que vous l' avez franchi, jusqu'au jour où vous essayez de diriger un
rsync -aH
ou uncp -a
qui se débat et échoue finalement .Ce que je recommande est le suivant: Copiez votre système de fichiers lié de manière très dure en une seule unité, pas en tant que fichiers. Autrement dit, copiez l'intégralité de la partition du système de fichiers en un seul gros objet Il existe un certain nombre d'outils disponibles pour ce faire, mais le plus omniprésent est
dd
.Avec le firmware d'origine, votre NAS QNAP devrait également avoir
dd
intégréfdisk
. Avecfdisk
, créez sur le lecteur de destination une partition au moins aussi grande que la partition source. Ensuite, utilisezdd
pour créer une copie exacte de votre partition source sur la partition de destination nouvellement créée.Pendant que la
dd
copie est en cours, vous devez vous assurer que rien ne change dans le système de fichiers source, de peur de vous retrouver avec une copie corrompue sur la destination. Une façon de le faire est deumount
retourner à la source avant de commencer le processus de copie; une autre façon consiste à monter la source en mode lecture seule.la source
--hard-links
(avec un 's').-l
est pour les liens symboliques, pourquoi ferait-il quelque chose pour les liens durs?(Désolé, c'est une réponse et non un commentaire, je n'ai pas encore de droits de commentaire et cette réponse avait besoin d'une réponse)
Une autre note qui devrait être un commentaire: est-ce que tout le matériel est natif ou êtes-vous sur une machine virtuelle, montage réseau?
Éditer
ignorer mon commentaire précédent concernant la raison pour laquelle vous utilisez des liens physiques, j'ai raté le
rsnapshot
commentaire.Il serait utile d'avoir un test qui teste d'abord la synchronisation entre deux disques locaux du disque local, puis contre votre disque distant. Ce petit test montre l'
-H
option wokrs comme prévu. L'-i
option pourls
affiche les inodes, montrant ainsi que les liens ont été conservés, sans copies supplémentaires.Un test ultérieur
rsync -avzHP src/ host:/tmp
sur un hôte distant a toujours maintenu les liens physiquesla source
-H
dans la page de manuel, vous pouvez voir qu'il y a plusieurs mises en garde, qui me diraient, essayez se tenir à l'écart desC'est un long plan, mais si vous ne trouvez pas une autre solution, je vous suggère d'essayer de formater la clé USB en EXT4. Cela pourrait peut-être être le problème: https://bugzilla.samba.org/show_bug.cgi?id=7670
la source
Avez-vous essayé d'ajouter l'
-l
option?Je sais que la page de manuel indique qu'elle est incluse dans
-a
mais les pages de manuel ne sont pas toujours exactes à 100%.la source