Was genau macht --delete-excluded für rsync?

32

Ich verwende rsync mit großer Freude zum Sichern meiner Server, obwohl ich eine Frage zu dem --delete-excludedParameter habe.

/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded     --rsh=/usr/bin/ssh root@server01:/etc /.snapshot/hourly.0/server01

Von man rsync:

 --delete-excluded       also delete excluded files from dest dirs

Für mich, einen nicht englischen Muttersprachler, bedeutet dies, dass rsync ausgeschlossene Verzeichnisse aus dem tatsächlichen Zielverzeichnis auf dem Remote-Server löscht. Wenn ich also /home/backupund /home/settingsin meinen Exclude-Ordnern diese Ordner tatsächlich vom Remote-Server entfernen würde ,

Aus mehreren anderen Quellen scheinen die Dateien aus dem lokalen Sicherungsordner gelöscht zu werden, um Speicherplatz zu sparen. Sie können zum Beispiel kleine Backups auf dem Server selbst erstellen und diese Daten ausschließen, damit Sie keinen Speicherplatz verschwenden.

Es ist wichtig für mich, dass rsync nur in eine Richtung funktioniert, da die Leute sagen, es soll funktionieren. Ich möchte kein Risiko eingehen, wenn Software Dateien / Verzeichnisse auf dem Remote-Server löscht.

ujjain
quelle

Antworten:

37

Ihre Interpretation ist richtig. Wenn Sie Dateien oder Verzeichnisse von der Übertragung ausgeschlossen haben, werden sie durch --delete-excluded von der Zielseite entfernt (dies muss nicht der "Remote-Server" sein, den Sie rsynczum Kopieren von einem Server auf den lokalen Computer verwenden können), wenn es findet sie dort. Wenn Sie beispielsweise verwenden --exclude=*.o --delete-excluded, werden Dateien, die auf der Zielseite mit .o enden, von rsync entfernt, unabhängig davon, ob sie im Quellverzeichnis vorhanden sind oder nicht.

DerfK
quelle
1
Also werden die Verzeichnisse / Dateien von /.snapshot/hourly.0/server01 und nicht vom Remote-Server entfernt?
ujjain
3
@chronoz Wenn Sie vom Remote-Server auf den lokalen Computer kopieren, ist das Ziel der lokale Computer. Wenn Sie vom lokalen Computer auf den Remoteserver kopieren, ist das Ziel der Remoteserver. Das Ziel ist das, was hier wichtig ist. Wenn das Ziel der Remoteserver ist, werden die Dateien vom Remoteserver entfernt.
DerfK
Bestätigung hier: comentum.com/rsync.html
SDsolar
1
Ich habe kürzlich festgestellt, dass "--delete-excluded" völlig gleichbedeutend mit "--delete --delete-excluded" ist. Im obigen Antwortbeispiel werden auch entfernte Dateien gelöscht, die nicht auf der Quellseite vorhanden sind.
Wayne