Je veux sauvegarder mon répertoire personnel sur un lecteur externe tous les soirs en utilisant un cron
travail à exécuter rsync
. Je ne suis pas sûr du comportement exact des rsync
indicateurs de lien symbolique de.
rsync
Le-a
drapeau de 's inclut le-l
drapeau (c'est-à-dire "copier les liens symboliques en tant que liens symboliques"). Cela signifie-t-il simplement qu'il va copier le lien ou qu'il va suivre le lien et tout copier dans le répertoire des liens? Je veux éviter cela car j'ai des liens vers des répertoires pleins de fichiers multimédias qui impliqueraient la copie de centaines de giga-octets que je n'ai pas besoin de sauvegarder.- Craignant (mais pas certain) de
rsync -a
copier tous ces fichiers multimédias, j'ai plutôt ajouté le--no-links
drapeau. Cela ne semble pas être un comportement que je veux. Cela ignore simplement la copie des liens posant problème, car j'ai des liens à copier (par exemple, des liens vers des fichiers d'en-tête communs à partir de différents répertoires de projet). - En supposant que le numéro 1 ci-dessus (sans le
--no-links
drapeau) soit ce que je veux vraiment, il copie simplement le lien sans copier les fichiers liés. Les liens seront-ils rompus lorsqu'ils seront sauvegardés? Par exemple, je peuxrsync
source répertoire/home/me/projects/misc
à/media/extdrive/backup/home/me/projects/misc
. Dans ce cas, je suppose que cersync
n’est pas assez intelligent ni qu’il essaie de corriger le contenu des liens symboliques pour les modifications relatives au répertoire. Est-ce correct? Ce n'est pas grave, peu importe si les liens sont rompus dans les répertoires de sauvegarde, dans la mesure où ils seront réparés et fonctionneront si le moment vient où ils doivent être restaurés.
linux
rsync
symbolic-link
Sean
la source
la source
Réponses:
"Copier les liens symboliques sous forme de liens symboliques" signifie exactement ce qu'il dit: si rsync voit un lien symbolique dans le répertoire source, il créera un lien symbolique identique dans la destination. Rien de plus.
(Quelques lignes plus bas dans la page de manuel, une option différente
--copy-links
, décrivent le comportement opposé (toujours en copiant les données) que vous avez décrit comme indésirable.)Voir aussi la section "Liens symboliques":
Ce n'est pas le comportement que vous voulez parce que vous interprétez mal ce qui se
--links
passe et par conséquent vous demandez le mauvais comportement (voir la réponse n ° 1).Par défaut, il copie exactement la destination .
Autrement dit, si le lien pointait vers un chemin absolu (par exemple
/home/me/projects
), il continuerait de pointer vers le même chemin. cela ne cassera pas , cela continuera simplement de pointer vers un fichier de votre répertoire personnel plutôt que vers celui de votre sauvegarde.En attendant, si le lien pointe vers un chemin relatif (par exemple
../../projects
), il continuera également de pointer vers le même chemin, mais comme il est relatif à l'emplacement du lien symbolique, le lien symbolique dans votre sauvegarde pointera également vers un fichier de votre sauvegarde.Malheureusement, il ne semble pas y avoir d’option permettant de traduire les liens symboliques absolus pour leur nouvelle base (seule une option permettant de les casser complètement). Pour éviter les problèmes, vous devez remplacer les liens symboliques existants par des liens relatifs (ce qui est une bonne idée en général pour les liens contenus dans $ HOME).
la source
--copy-links
et--links
?--copy-links
=-L
, et--links
=-l
. Voir la description de la documentation dans ma réponse ici: superuser.com/a/1388910/425838@grawity a une excellente réponse, mais voici une capture d'écran d'informations pertinentes de la documentation. Voici le libellé exact des options
-l
et-L
, par exemple, qui semblent être les plus pertinentes:Source: https://linux.die.net/man/1/rsync , ou
man rsync
pages de manuel sous Linux.Notez également que l' option
-a
(--archive
) inclut également l'-l
option qu'il contient , ce qui est génial, car j'aime beaucoup utiliser l'-l
option pour conserver mes liens symboliques de la source en tant que liens symboliques sur la destination. À partir des pages de manuel:Remarque, pour mes
rsync
commandes et instructions préférées , y compris la copie, la mise en miroir, la progression totale ...... faire des courses à sec, l' exploitation forestière stderr et stdout aux fichiers (séparés), montrant les statistiques, en utilisant un fichier include de chemin et un ne comprennent pas le fichier , etc, voir ma réponse complète ici sous la 2ème section, intitulée « 2. rsync en ligne de commande outil (Linux, Windows avec Cygwin) ": https://superuser.com/a/1464264/425838
la source