kopieren mit rsync - subfolder auschliessen

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
vrms
Beiträge: 99
Registriert: 25.03.2013 14:04:03

kopieren mit rsync - subfolder auschliessen

Beitrag von vrms » 22.02.2014 09:38:20

ich moechte ein icedove/thunderbird profi kopieren aber alle Archive (muesste der Ordner names 'Archive.sdb' sein) ausschliessen. Dafuer wollte ich gerne rsync benutzen

Abstrakter ausgedrueckt: Ich will einen Ordner inkl. subfolder kopieren. Alle files innerhalb eines dieser subfolder (Archives.sbd) sollen allerdings ausgeschlossen werden. Der Subfolder selbst sollte eigentlich (leer) mit kopiert werden

Code: Alles auswählen

rsync -av --progress /path/to/profile  /path/to/copy --exclude /path/to/profile/Mail/account1/Archives.sbd/*
...resultiert allerdings in einer Fehlermeldung:

#ERROR: destination must be a directory when copying more than 1 file
#rsync error: errors selecting input/output files, dirs (code 3) at main.c(571) [Receiver=3.0.9]
#rsync: connection unexpectedly closed (9 bytes received so far) [sender]
#rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]

der folder 'copy' existiert

wenn ich die /* weglasse zeight mein --exclude keine Wirkung (also der ausgeschlossene Folder wird inklusive Inhalt mit kopiert)

was geht hier schief?

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: kopieren mit rsync - subfolder auschliessen

Beitrag von syssi » 22.02.2014 09:46:27

Die letzten beiden Parameter muessen "Quelle" und "Ziel" sein. Sortierst du den Exclude nach vorn, dann bist du schon einen Schritt weiter:

Code: Alles auswählen

rsync -av --progress --exclude /path/to/profile/Mail/account1/Archives.sbd/* /path/to/profile  /path/to/copy

vrms
Beiträge: 99
Registriert: 25.03.2013 14:04:03

Re: kopieren mit rsync - subfolder auschliessen

Beitrag von vrms » 22.02.2014 12:08:37

syssi hat geschrieben:Die letzten beiden Parameter muessen "Quelle" und "Ziel" sein. Sortierst du den Exclude nach vorn, dann bist du schon einen Schritt weiter:

Code: Alles auswählen

rsync -av --progress --exclude /path/to/profile/Mail/account1/Archives.sbd/* /path/to/profile  /path/to/copy
das hoert sich sinnvoll an. Ich Kriege auch keinen Fehler mehr, aber mein exclude bleibt immer noch Wirkungslos.
Sowohl mit, als auch ohne ~/* am Ende wird der auzuschliessende Folder /path/to/profile/Mail/account1/Archives.sbd komplett mit Inhalt kopiert.

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: kopieren mit rsync - subfolder auschliessen

Beitrag von syssi » 22.02.2014 12:21:54

Die Option "--dry-run" (kurz: "-n") ist ganz hilfreich fuer Testlaeufe. Ich stolper auch gerne ueber nicht funktionierende Excludes bei tar und rsync. Hinter dem Exclude-Parameter definiert man ein Muster, welches hundertprozentig passen muss. Vermutlich funktioniert es so:

Code: Alles auswählen

rsync -av --progress --exclude 'Archives.sbd'  /path/to/copy
# oder
rsync -av --progress --exclude 'Archives.sbd/'  /path/to/copy
Gruss syssi

Benutzeravatar
4A4B
Beiträge: 925
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: kopieren mit rsync - subfolder auschliessen

Beitrag von 4A4B » 22.02.2014 12:27:12

Wenn das Muster hinter --exclude eine Wildcard wie * enthält, sollte es gequotet werden:

Code: Alles auswählen

--exclude '/path/to/profile/Mail/account1/Archives.sbd/*'

vrms
Beiträge: 99
Registriert: 25.03.2013 14:04:03

Re: kopieren mit rsync - subfolder auschliessen

Beitrag von vrms » 23.02.2014 01:19:42

4A4B hat geschrieben:Wenn das Muster hinter --exclude eine Wildcard wie * enthält, sollte es gequotet werden:

Code: Alles auswählen

--exclude '/path/to/profile/Mail/account1/Archives.sbd/*'
ja, so geht es. Besten Dank!

Nun mal einen Schritt weiter gedacht. Es sollen 2 subfolder excluded werden. Also, wie werden die zwei verschieden auszuschliessenden folder in der Befehlsgrammatik getrennt? Der Einfachheit halber lassen wir die wildcards vielleicht mal weg

Erfolglos probiert habe ich:

Code: Alles auswählen

A)   ,   -   --exclude ~/folder/sub-folder1, ~/folder/sub-folder ...
B)   |   -   --exclude ~/folder/sub-folder1 | ~/folder/sub-folder ...
C)   das gesamte exclude Gebilde in 'quotes' zu packen      -   --exclude '~/folder/sub-folder1 ~/folder/sub-folder' ...
C)   das gesamte exclude Gebilde in "quotes" zu packen      -   --exclude "~/folder/sub-folder1 ~/folder/sub-folder" ...
A-C) laufen ohne Fehler durch. Es wird aber nichts excluded, D) gibt einen "command not found" Fehler aus

vrms
Beiträge: 99
Registriert: 25.03.2013 14:04:03

Re: kopieren mit rsync - subfolder auschliessen

Beitrag von vrms » 23.02.2014 01:45:37

vrms hat geschrieben:
4A4B hat geschrieben:Wenn das Muster hinter --exclude eine Wildcard wie * enthält, sollte es gequotet werden:

Code: Alles auswählen

--exclude '/path/to/profile/Mail/account1/Archives.sbd/*'
ja, so geht es. Besten Dank!
halt, ganz so geht es doch nicht. Der auszuschliessende folder Darf anscheinend nicht mit dem ganz Pfad genannt werden, sondern lediglich mit dem Namen des Folders

Code: Alles auswählen

~ --exclude foldername      funktioniert

Code: Alles auswählen

~ --exclude /path/to/foldername      schlaegt fehl

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: kopieren mit rsync - subfolder auschliessen

Beitrag von Cae » 23.02.2014 02:41:07

Aber bei einem zu kopierenden Pfad von /foo/bar/, wovon /foo/bar/baz/boom per --exclude ausgeschlossen werden soll, sollte --exclude baz/boom den Job tun. --exclude boom wuerde auch auf /foo/bar/pew/boom matchen.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: kopieren mit rsync - subfolder auschliessen

Beitrag von syssi » 23.02.2014 09:00:48

Mehrere Excludes kannst du einfach durch die mehrfache Nutzung der Option "--exclude" setzen:

Code: Alles auswählen

rsync -avzP --exclude dies --exclude jenes <quelle> <ziel>

debianoli
Beiträge: 4068
Registriert: 07.11.2007 13:58:49
Wohnort: Augschburg

Re: kopieren mit rsync - subfolder auschliessen

Beitrag von debianoli » 24.02.2014 09:07:23

oder du Schreibst die excludes in eine Datei

Code: Alles auswählen

/Verzeichnis
/verzeichnis2
dann Aufruf über

Code: Alles auswählen

rsync -av --exclude-from=Datei Quelle ziel

Benutzeravatar
smutbert
Moderator
Beiträge: 8319
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: kopieren mit rsync - subfolder auschliessen

Beitrag von smutbert » 24.02.2014 11:20:12

In die exclude-Datei gehört aber noch ein Minus vor den ausgeschlossenen Pfad (oder ist das gar nicht notwenig?). Bei mir sieht das für /home jedenfalls so aus:

Code: Alles auswählen

- /*/.local/share/Trash/
- /*/.thumbnails/
- /*/.cache/

debianoli
Beiträge: 4068
Registriert: 07.11.2007 13:58:49
Wohnort: Augschburg

Re: kopieren mit rsync - subfolder auschliessen

Beitrag von debianoli » 24.02.2014 12:48:45

smutbert hat geschrieben:In die exclude-Datei gehört aber noch ein Minus vor den ausgeschlossenen Pfad (oder ist das gar nicht notwenig?). Bei mir sieht das für /home jedenfalls so aus:
Nicht unbedingt notwendig, es funktioniert auch ohne Minus. Wichtig ist nur die Angabe von relativen Pfaden. Also immer vom zu sichernden Verzeichnis aus die Verzeichnisse angeben, die nicht mit sollen OHNE Angabe des genauen Pfades. Siehe die kurze Erklärung hier http://www.howtogeek.com/168009/how-to- ... rom-rsync/

Antworten