Führen Sie rsync aus, während Sie sym-Links folgen


67

Ich habe ein Verzeichnis, das symbolische Links zu anderen Verzeichnissen enthält, die sich auf verschiedenen Datenträgern meines Systems befinden:

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

Die symbolischen Links werden jedoch wie folgt angezeigt:

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

Wie kann ich ein ausführen rsync, das den symbolischen Links folgt?

z.B:

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

Antworten:


98

Das -LFlag für rsync synchronisiert den Inhalt der verknüpften Dateien oder Verzeichnisse und nicht den symbolischen Link.


1
Wenn ich dies tue, werden alle symbolischen Empfängerlinks gelöscht und mein Absender beginnt, die Dateien erneut zu senden.
ensnare

Willst du das nicht? Ich dachte, Sie wollten die echten Dateien auf der Empfängerseite haben, nicht nur die Symlinks. Wollen Sie, dass die Symlinks als Symlinks kopiert, aber automatisch neu geschrieben werden, um auf die "richtige" Stelle im empfangenden System zu verweisen? Wenn ja, ist das normalerweise nicht mit "rsync, das den symbolischen Links folgt" gemeint.
MadHatter

4
Hallo - das sind Verzeichnisse. Ich habe dies mit der -K-Flagge arbeiten.
ensnare

4
Ich bin sicher, SO macht mich mehr dumm ..
John Hunt

4
Um zu verdeutlichen, -LKob Sie sowohl verknüpften Dateien als auch Verzeichnissen folgen möchten
Mahn

17

Bin gerade auf dieses Problem gestoßen. Und wenn Sie möchten, dass rsync verknüpfte Verzeichnisse als Verzeichnisse behandelt, möchten Sie die KOption

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


Vielleicht möchten Sie auch die Option --copy-unsafe-links hinzufügen
Gregory Magarshak

2

Sie brauchen beides -L und -Kwenn Sie Symlinks auf beiden Seiten haben, z. B. hatten Sie bereits Ihren 1. rsync und möchten das Backup mit rsync aktualisieren.

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

In solchen Fällen werden, wenn Sie nur verwenden -L, die Symlinks auf der Empfängerseite gelöscht und es wird ein neues Echtverzeichnis erstellt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.