ubuntuusers.de

rsync exclude ordner syntax

Status: Ungelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

suwo

Anmeldungsdatum:
25. Februar 2009

Beiträge: 502

Guten morgen zusammen.

Ich habe ein backup script. Funktioniert super. Jetzt wollte ich wenigstens das Verzeichnis home/user/.cache nicht mehr sichern (danke ChickenLipsRfun2Eat). Meine Frage, ist die Syntax für das Script so richtig, oder habe ich evt. einen slash falsch gesetzt?

alt: rsync -au -e "ssh -i /home/user/.ssh/backup_key" /home/user/ pi@192.168.0.14:/media/backup

neu: rsync -au -e --exclude=~/.cache/ "ssh -i /home/user/.ssh/backup_key" /home/user/ pi@192.168.0.14:/media/backup

Danke im voraus,

Suwo

dingsbums

Anmeldungsdatum:
13. November 2010

Beiträge: 3790

Meiner Erfahrung nach kann man bei rsync für Ausschlüsse nur "globale" Ordnernamen angeben (egal wo der Ordner liegt), keine absoluten Pfade.

--exclude=".cache"

V_for_Vortex Team-Icon

Avatar von V_for_Vortex

Anmeldungsdatum:
1. Februar 2007

Beiträge: 12095

Wohnort: Berlin

Im hiesigen Wiki ist das anhand einiger Beispiele beschrieben: rsync: Verzeichnisse von der Sicherung ausschließen

suwo

(Themenstarter)

Anmeldungsdatum:
25. Februar 2009

Beiträge: 502

Ich habe das Wiki gelesen, war mir aber sicher, dass ich das beim ersten Mal falsch verstehe. 😳 Dann müsste ich also statt der Tilde entweder

--exclude=/home/user/.cache

oder

--exclude=/home/user/.cache/

? Ist das dann richtig?

Gruß,

Suwo

V_for_Vortex Team-Icon

Avatar von V_for_Vortex

Anmeldungsdatum:
1. Februar 2007

Beiträge: 12095

Wohnort: Berlin

Meines Erachtens ist es falsch, siehe Wiki:

Das per exclude bezeichnete Verzeichnis /temp/ ist kein absoluter Pfad, sondern wird relativ zur sogenannten "Wurzel des Transfers" interpretiert.

… sowie den dortigen Hinweiskasten. Das heißt, Du würdest mit --exclude=/home/user/.cache/ das Verzeichnis /home/user/home/user/.cache/ ausschließen, also mit doppeltem /home/user.

M.E. müsste der Befehl so lauten:

1
rsync -au -e --exclude=/.cache/ "ssh -i /home/user/.ssh/backup_key" /home/user/ pi@192.168.0.14:/media/backup

Siehe auch das erste Beispiel nach dem Hinweiskasten.

Probier den Befehl einfach mal aus, ggf. mit einem Testverzeichnis statt gleich Deinem echten /home/user.

edit: Ob der abschließende Slash im Exclude wichtig ist oder nicht, weiß ich aus dem Stegreif nicht (beim Quellpfad hingegen entscheidet er, ob das letzte Verzeichnis im Pfad selbst oder nur sein Inhalt kopiert wird). Aber da die meisten Beispiele im Netz eines setzen, würde ich dem ohne weitere Recherche einfach mal folgen. Der allgemeinen Bash-Logik folgend könnte er bezeichnen, ob Verzeichnisse (mit Slash) oder Dateien gemeint sind, aber das ist nur eine Vermutung. Wenn ich mehr Zeit habe, könnte ich das mal nachschauen – auch für mich selbst als Auffrischung. 😉

suwo

(Themenstarter)

Anmeldungsdatum:
25. Februar 2009

Beiträge: 502

Hallo.

Vielen Dank für die Antwort. Wusste ich doch, dass ich zu bl..d bin das Wiki richtig zu verstehen. Werde das demnächst mit einem Testverzeichnis ausprobieren. Dauert aber ein bißchen, weil ich gerade im Umzugsstress bin. Melde mich dann wieder und setze auf gelöst, wenn es klappt.

Suwo

Antworten |