rsync / rsnapshot und exlude / include Verzeichnis, absoluter Pfad

539
res1

Ich verwende rsnapshot und möchte ein Verzeichnis über den absoluten Pfad ausschließen.

Ich habe rsnapshot.conf hinzugefügt. exclude /home/user/data Rsnapshot wird diesen rsync-Befehl verwenden:

/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \ --exclude=/home/user/data /home \ /backupdir/hourly.0/localhost/ 

und es funktioniert, es schließt das /home/user/datadir aus, aber mir ist nicht klar, warum es funktioniert. Wenn Sie die Man-Seiten von rsync lesen (und zum Beispiel diese Antwort https://askubuntu.com/a/349625 ), schließen Sie / include-Muster aus, die mit / beginnen, und sind an der Wurzel der Übertragung verankert. Ich dachte, es würde daran scheitern versuchen Sie es auszuschließen

/home/home/user/data 

Kann mir jemand diesen Punkt erklären?
Wie kann ein Verzeichnis mit absolutem Pfad richtig ausgeschlossen werden?

Danke für die Hilfe

0

1 Antwort auf die Frage

0
Fawzi Masri

Ich weiß, das ist alt, aber nur fürs Protokoll ...

Das --exclude gibt ein Muster an, nicht einen Ort im Verzeichnisbaum "/ home". rsync fügt diesem Muster nichts hinzu. "/ home" wird daher nicht hinzugefügt / dupliziert, da Sie --relative angegeben haben.

Wenn Sie dem Befehl rsync -iv hinzufügen, listet rsync alle Verzeichnisse und Dateien in "/ home" auf, die verarbeitet werden. Sie werden feststellen, dass jedes Verzeichniselement mit "/ home / user / data" aufgrund des Ausschlussmusters "/ home / user / data /" ausgeblendet wird.

Wenn Sie --exclude = data verwenden, werden alle dir-Elemente mit dem Namen "data" weggelassen. So wird beispielsweise auch / home / user / data oder / home / user2 / data oder / home / user3 / data weggelassen. da haben alle das Muster "Daten" in sich.