Effectuer rsync en suivant les liens sym


67

J'ai un répertoire qui contient des liens symboliques vers d'autres répertoires situés sur différents supports de mon système:

/opt/lun1/2011
/opt/lun1/2010
/opt/lun2/2009
/opt/lun2/2008
/opt/lun3/2007

Mais les liens symboliques apparaissent comme:

/files/2011
/files/2010
/files/2009
/files/2008
/files/2007

Comment puis-je effectuer un rsyncsuivi des liens symboliques?

par exemple:

rsync -XXX /files/ user@server:/files/

Réponses:


98

Le -Ldrapeau de rsync synchronisera le contenu des fichiers ou des répertoires liés, plutôt que le lien symbolique.


1
Lorsque je le fais, tous les liens symboliques du récepteur sont supprimés et mon expéditeur commence à renvoyer les fichiers.
Pris au piège

N'est-ce pas ce que tu veux? Je pensais que vous vouliez avoir les vrais fichiers du côté de la réception, pas seulement les liens symboliques. Voulez-vous dire que vous voulez que les liens symboliques soient copiés en tant que liens symboliques, mais réécrits automatiquement pour indiquer le "bon" emplacement sur le système récepteur? Si tel est le cas, ce n'est pas ce que l'on entend normalement par "un rsync qui suit les liens symboliques".
MadHatter

4
Salut - ce sont des répertoires. Je dois travailler avec le drapeau -K.
Pris au piège

4
Je suis sûr que SO me rend plus stupide ..
John Hunt

4
Pour clarifier, -LKsi vous voulez suivre à la fois les fichiers et les répertoires liés par un lien symbolique
Mahn

17

Je viens de rencontrer ce problème. Et si vous voulez que rsync traite les répertoires liés par un lien comme des répertoires, vous voulez l' Koption

rsync -K /files/ user@server:/files/


Vous pourriez également vouloir ajouter l'option --copy-unsafe-links
Gregory Magarshak

2

Vous avez besoin des deux -L et -Ksi vous avez des liens symboliques des deux côtés, par exemple, vous avez déjà effectué votre 1 er rsync et souhaitez mettre à jour la sauvegarde à l'aide de rsync.

    -L, --copy-links            transform symlink into referent file/dir
    -K, --keep-dirlinks         treat symlinked dir on receiver as dir

Dans ce cas, si vous utilisez uniquement -L, les liens symboliques situés du côté du récepteur seront supprimés et un nouveau répertoire réel sera créé.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.