rsync / Gadmin-Rsync: DAU braucht Hilfe...
![](https://seccdn.libravatar.org/avatar/62125288dd40f3bb08a59554fbf73db9.jpg?s=120&d=mm&r=g)
Hallo Liste, Weil ich es nicht geschafft habe, die rsync-syntax so zu verstehen, dass ich die benötigten Befehle sicher erstellen könnte, habe ich mir Gadmin-Rsync installiert 0.1.0 installiert. Nun möchte ich aber, dass Daten auf dem Backup, die im Original nicht mehr vorhanden sind, vom Backup gelöscht werden. Man kann da eine entsprechende Option ankreuzen, nur bleibt sie leider wirkungslos... Wie kann ich das hinkriegen? Oder kann mir jemand den rsync-Befehl austüfteln, denn ich brauche um zunächst mal a) / (alles ausser /media, /mnt, /proc, /tmp, var/tmp, var/spool) nach externer HD /media/baer zu kopieren und später nach Updates zu aktualisieren und öfters mal b) nur /home (komplett mit allen usern, allen Verzeichnissen und Dateien) auf externer HD /media/baer/home aktualisieren beide male eben mit Löschen von nicht mehr vorhandenem? Vielen Dank (auch für Links zu Seiten, die evtl. sogar ich verstehen könnte...) Daniel -- Daniel Bauer photographer Basel Barcelona professional photography: http://www.daniel-bauer.com erotic art photos: http://www.bauer-nudes.com Madagascar special: http://www.fotograf-basel.ch/madagascar/ -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/e5453f150103b78b188bfe7545f71230.jpg?s=120&d=mm&r=g)
Hallo, das Gadmin-Rsync kenne ich nicht, aber das normale Rsync von der Kommandozeile ist sehr einfach zu bedienen, eine gute Zusammenfassung des Befehles gibts unter: http://www.linux-magazin.de/Heft-Abo/Ausgaben/2007/08/Garantiert-gleich?cate... Hope it helps Cheers Jürgen Am Montag, 15. Juni 2009 16:22:29 schrieb Daniel Bauer:
Hallo Liste,
Weil ich es nicht geschafft habe, die rsync-syntax so zu verstehen, dass ich die benötigten Befehle sicher erstellen könnte, habe ich mir Gadmin-Rsync installiert 0.1.0 installiert.
Nun möchte ich aber, dass Daten auf dem Backup, die im Original nicht mehr vorhanden sind, vom Backup gelöscht werden. Man kann da eine entsprechende Option ankreuzen, nur bleibt sie leider wirkungslos...
Wie kann ich das hinkriegen?
Oder kann mir jemand den rsync-Befehl austüfteln, denn ich brauche um
zunächst mal a) / (alles ausser /media, /mnt, /proc, /tmp, var/tmp, var/spool) nach externer HD /media/baer zu kopieren und später nach Updates zu aktualisieren
und öfters mal b) nur /home (komplett mit allen usern, allen Verzeichnissen und Dateien) auf externer HD /media/baer/home aktualisieren
beide male eben mit Löschen von nicht mehr vorhandenem?
Vielen Dank (auch für Links zu Seiten, die evtl. sogar ich verstehen könnte...)
Daniel
-- Daniel Bauer photographer Basel Barcelona professional photography: http://www.daniel-bauer.com erotic art photos: http://www.bauer-nudes.com Madagascar special: http://www.fotograf-basel.ch/madagascar/
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/62125288dd40f3bb08a59554fbf73db9.jpg?s=120&d=mm&r=g)
Danke Jürgen, genau so eine Erklärung hat mir gefehlt! Daniel On Monday 15 June 2009 16:33:49, Hochegger Juergen wrote:
Hallo,
das Gadmin-Rsync kenne ich nicht, aber das normale Rsync von der Kommandozeile ist sehr einfach zu bedienen, eine gute Zusammenfassung des Befehles gibts unter:
http://www.linux-magazin.de/Heft-Abo/Ausgaben/2007/08/Garantiert-gleich?cate...
Hope it helps
Cheers Jürgen
Am Montag, 15. Juni 2009 16:22:29 schrieb Daniel Bauer:
Hallo Liste,
Weil ich es nicht geschafft habe, die rsync-syntax so zu verstehen, dass ich die benötigten Befehle sicher erstellen könnte, habe ich mir Gadmin-Rsync installiert 0.1.0 installiert.
Nun möchte ich aber, dass Daten auf dem Backup, die im Original nicht mehr vorhanden sind, vom Backup gelöscht werden. Man kann da eine entsprechende Option ankreuzen, nur bleibt sie leider wirkungslos...
Wie kann ich das hinkriegen?
Oder kann mir jemand den rsync-Befehl austüfteln, denn ich brauche um
zunächst mal a) / (alles ausser /media, /mnt, /proc, /tmp, var/tmp, var/spool) nach externer HD /media/baer zu kopieren und später nach Updates zu aktualisieren
und öfters mal b) nur /home (komplett mit allen usern, allen Verzeichnissen und Dateien) auf externer HD /media/baer/home aktualisieren
beide male eben mit Löschen von nicht mehr vorhandenem?
Vielen Dank (auch für Links zu Seiten, die evtl. sogar ich verstehen könnte...)
Daniel
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/8e9008345205e6ee86b2e3344b5dbdbc.jpg?s=120&d=mm&r=g)
Daniel Bauer schrieb:
Hallo Liste,
Weil ich es nicht geschafft habe, die rsync-syntax so zu verstehen, dass ich die benötigten Befehle sicher erstellen könnte, habe ich mir Gadmin-Rsync installiert 0.1.0 installiert.
huch ... dann nimmst die Kommandozeilenversion und tippst das ein. 1. das geht ..genau das genauso 2. die Syntax hab ich nicht im Kopf ... ich benutze im Regelfall kumulierte Backups..
Nun möchte ich aber, dass Daten auf dem Backup, die im Original nicht mehr vorhanden sind, vom Backup gelöscht werden. Man kann da eine entsprechende Option ankreuzen, nur bleibt sie leider wirkungslos...
Wie kann ich das hinkriegen?
Oder kann mir jemand den rsync-Befehl austüfteln, denn ich brauche um
zunächst mal a) / (alles ausser /media, /mnt, /proc, /tmp, var/tmp, var/spool) nach externer HD /media/baer zu kopieren und später nach Updates zu aktualisieren
hmmm... ich habe in der crontab 20 Zeile für 20 Ordner stehen...die zeitlich gestaffelt starten! Rekursiv ist nicht das Thema... jedes zu sichernde Verzeichnis kriegt (hier) seine eigene Zeile rsync -a wer@wo:/was wer@wo:/wohin Login per vorher erzeugten/hinterlegten key irgendwie .ssh/pub-key ->> nach ferner rechner ??.ssh/authorized_keys schieben (google hilft : rsync mit slogin oder so als Suchbegriff)
und öfters mal b) nur /home (komplett mit allen usern, allen Verzeichnissen und Dateien) auf externer HD /media/baer/home aktualisieren
beide male eben mit Löschen von nicht mehr vorhandenem?
man rsync Optionen stehen der Reihe nach da
Vielen Dank (auch für Links zu Seiten, die evtl. sogar ich verstehen könnte...)
lesen ja ... verstehen - woher soll ich das wissen ? ;-)
Daniel
mit bissel Glück gibts über Google auch eine übersetzte Variante in Deutsch ... Fred -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/ec75ef7cbea71bca17ad2fc6e2d8abe1.jpg?s=120&d=mm&r=g)
Hallo Daniel, Daniel Bauer schrieb:
Hallo Liste,
Weil ich es nicht geschafft habe, die rsync-syntax so zu verstehen, dass ich die benötigten Befehle sicher erstellen könnte, habe ich mir Gadmin-Rsync installiert 0.1.0 installiert.
Sorry, aber die manpage ist dafür prima.
Nun möchte ich aber, dass Daten auf dem Backup, die im Original nicht mehr vorhanden sind, vom Backup gelöscht werden. Man kann da eine entsprechende Option ankreuzen, nur bleibt sie leider wirkungslos... Hast Du evtl die Testoption "--dry-run" aktiviert?
Oder kann mir jemand den rsync-Befehl austüfteln, denn ich brauche um
zunächst mal a) / (alles ausser /media, /mnt, /proc, /tmp, var/tmp, var/spool) nach externer HD /media/baer zu kopieren und später nach Updates zu aktualisieren
rsync -avx --exclude='media' --exclude='mnt' --exclude='proc' --exclude='tmp' --exclude='spool' --delete --dry-run / /media/baer/ Bitte in der Manpage nachlesen und dann "--dry-run" entfernen.
und öfters mal b) nur /home (komplett mit allen usern, allen Verzeichnissen und Dateien) auf externer HD /media/baer/home aktualisieren
rsync -avx --delete --dry-run /home/ /media/baer/home/ vorher muß das Verzeichnis /media/baer/home existieren.
beide male eben mit Löschen von nicht mehr vorhandenem?
Vielen Dank (auch für Links zu Seiten, die evtl. sogar ich verstehen könnte...)
Da Du noch nicht geschrieben hast, was Du Dir schon alles angeschaut hast, ist es schwierig hier eine Empfehlung zur Doku abzugeben. Es dürfte aber gerade zu rsync genügend Material zu finden sein. -- Gruß Axel -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/62125288dd40f3bb08a59554fbf73db9.jpg?s=120&d=mm&r=g)
Hallo Axel, vielen Dank, aber...: On Monday 15 June 2009 16:47:25, Axel Birndt wrote:
Weil ich es nicht geschafft habe, die rsync-syntax so zu verstehen
Sorry, aber die manpage ist dafür prima.
Ja, wenn man von Computern ziemlich viel mehr weiss, als dass das so eine Schachtel mit Kabeln dran ist - sicher :-)
....
Oder kann mir jemand den rsync-Befehl austüfteln, denn ich brauche um
zunächst mal a) / (alles ausser /media, /mnt, /proc, /tmp, var/tmp, var/spool) nach externer HD /media/baer zu kopieren und später nach Updates zu aktualisieren
rsync -avx --exclude='media' --exclude='mnt' --exclude='proc' --exclude='tmp' --exclude='spool' --delete --dry-run / /media/baer/
Also, ich habe eingegeben: rsync -avx --exclude='/media' --exclude='/mnt' --exclude='/proc' --exclude='/tmp' --exclude='/var/spool' --exclude='/var/tmp' --delete --dry-run / /media/baer und dann zeigt es mir eine riesige Liste mit allen Dateien, die es löschen würde - und zwar, wenn ich das richtig sehe, auf der SRC-Seite...
Bitte in der Manpage nachlesen und dann "--dry-run" entfernen.
Eben, was ich da so sehe, kann mir das auch nicht erklären. Es müsste doch höchstens auf der DEST-Seite löschen, oder? Siehst du was, was ich in meinem Befehl falsch gemacht habe? (ich habe die exclude-parameter anders geschrieben, und den DEST auch ohne "/" am Schluss - eine Mischung aus deiner und Andres Antwort.) Und warum hast du noch den Parameter x, den Andre nicht verwendet? (Ehrlich: ich habe in man nachgeschaut, aber das hilft mir nicht, zu entscheiden, ob es jetzt x braucht oder nicht - auch wie man das mit dem exclude nun genau richtig macht, übersteigt mein Begriffsvermögen...) Gruss Daniel -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/ec75ef7cbea71bca17ad2fc6e2d8abe1.jpg?s=120&d=mm&r=g)
Hallo Daniel, Daniel Bauer schrieb:
Hallo Axel,
vielen Dank, aber...:
Kein Problem :-) Ich versuch mal in Deiner Mail noch was zu erklären: rsync -avx -a -> Option für "all" -v -> verbose, mehr Details -x -> nur das eine Filesystem sichern, keine anderen Filesysteme mitsichern. # -a fasst folgende Optionen zusammen: * -r kopiert Unterverzeichnisse * -l kopiert symbolische Links * -p behält Rechte der Quelldatei bei * -t behält Zeiten der Quelldatei bei, * -g behält Gruppenrechte der Quelldatei bei * -o behält Besitzrechte der Quelldatei bei (nur root) * -D behält Gerätedateien der Quelldatei bei (nur root) Ich gehe mal davon aus das Du die folgenden 2 Links kennst:? http://wiki.ubuntuusers.de/rsync http://linuxwiki.de/rsync
On Monday 15 June 2009 16:47:25, Axel Birndt wrote:
Weil ich es nicht geschafft habe, die rsync-syntax so zu verstehen Sorry, aber die manpage ist dafür prima.
Ja, wenn man von Computern ziemlich viel mehr weiss, als dass das so eine Schachtel mit Kabeln dran ist - sicher :-)
Naja kein Problem, Du hast es ja schon mal versucht, jetzt gehen wir einen Schritt weiter
a) / (alles ausser /media, /mnt, /proc, /tmp, var/tmp, var/spool) nach externer HD /media/baer zu kopieren und später nach Updates zu aktualisieren rsync -avx --exclude='media' --exclude='mnt' --exclude='proc' --exclude='tmp' --exclude='spool' --delete --dry-run / /media/baer/
Also, ich habe eingegeben:
rsync -avx --exclude='/media' --exclude='/mnt' --exclude='/proc' --exclude='/tmp' --exclude='/var/spool' --exclude='/var/tmp' --delete --dry-run / /media/baer
und dann zeigt es mir eine riesige Liste mit allen Dateien, die es löschen würde - und zwar, wenn ich das richtig sehe, auf der SRC-Seite...
Wenn du zuerst den Slash angibst, und danach das Ziel löscht rsync nicht. Deshalb mit --dry-run testen. Wie gesagt, vielleicht auch erstmal die "--delete" Option weglassen. Eventuell kannst Du den rsync Befehl erstmal mit anderen Daten testen? Zum Beispiel ein Testverzeichnis erstellen und damit den rsync Befehl testen, bis er das tut, was Du möchtest.
Bitte in der Manpage nachlesen und dann "--dry-run" entfernen.
Eben, was ich da so sehe, kann mir das auch nicht erklären. Es müsste doch höchstens auf der DEST-Seite löschen, oder?
Ja, genau. Ich denke einfach mal, das es für jemanden, der beginnt, so ausssieht, als ob die Quelle gelöscht würde. Wie oben genannt, an einem Testverzeichnis probieren.
Siehst du was, was ich in meinem Befehl falsch gemacht habe? (ich habe die exclude-parameter anders geschrieben, und den DEST auch ohne "/" am Schluss - eine Mischung aus deiner und Andres Antwort.)
Und warum hast du noch den Parameter x, den Andre nicht verwendet?
-x sagt aus, das der rsync nur auf das aktuelle Filesystem wirken soll.
(Ehrlich: ich habe in man nachgeschaut, aber das hilft mir nicht, zu entscheiden, ob es jetzt x braucht oder nicht - auch wie man das mit dem exclude nun genau richtig macht, übersteigt mein Begriffsvermögen...)
Ich habe Dir schon die excludes korrekt zusammengebaut, auch wenn es erstmal umständlich aussieht. Versuchs noch mal und teste es. Wenn Du noch Fragen hast, dann ein Beispiel posten und die Beschreibung, was warum funktioniert hat, oder auch nicht... Dann versuchen wir es zu klären.. -- Gruß Axel -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/02bd3b8e3a436c5b5dac0042a9a9fa6b.jpg?s=120&d=mm&r=g)
Hi Daniel, um den OP noch ein wenig mehr zu verwirren ... Am Montag 15 Juni 2009 21:19:29 schrieb Axel Birndt:
rsync -avx
-a -> Option für "all" -v -> verbose, mehr Details -x -> nur das eine Filesystem sichern, keine anderen Filesysteme mitsichern.
# -a fasst folgende Optionen zusammen:
* -r kopiert Unterverzeichnisse * -l kopiert symbolische Links * -p behält Rechte der Quelldatei bei * -t behält Zeiten der Quelldatei bei, * -g behält Gruppenrechte der Quelldatei bei * -o behält Besitzrechte der Quelldatei bei (nur root) * -D behält Gerätedateien der Quelldatei bei (nur root)
wenn man nun noch die excludes in eine datei packt wird die Befehlszeile noch etwas übersichtlicher, man schreibe also eine textdatei zb. /etc/rsync/daniel.exclude mit ähnlichem inhalt: /proc/* /tmp/* /dev/* /mnt/* /media/* /sys/* /bkup/* /var/cache/squid/* /var/lib/ntp/proc/* dann verweist man in der Kommandozeile nur noch auf diese Datei: rsync -avx --delete --exclude-from="/etc/rsync/daniel.exclude" ... damit bleibt die Kommandozeile übersichtlich und man muß für die excludes nur noch die Datei anpassen. Diese Art der excludes Angabe (mit dem /* am ende) sichert den Knoten selber noch mit, nur der Inhalt des jew. Ordners wird excludiert, damit spart man sich das händische Anlegen der Mountpoints (zb. /proc ) nach dem Rücksichern. btw: die option x macht das excludieren von /proc /dev /mnt /media eigentlich überflüssig weil das idr. andere Filesysteme sind und die Option x verhindert das über das aktuelle filesystem auf Quellseite hinaus gegangen wird. Gruss Falk -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/b6b27958072dd201c9f2bba8b6bfa337.jpg?s=120&d=mm&r=g)
Am Dienstag 16 Juni 2009 06:48:28 schrieb Falk Sauer:
Hi Daniel,
um den OP noch ein wenig mehr zu verwirren ...
Da hier die rsync-Spezialisten beisammen sind, hänge ich mich mit einem Problem an, das ich schon längere Zeit zu lösen versuche. Es geht vermutlich um "exclude". Struktur der Quelle: /ebene/ebene2/ebene3/ebene4/ebene5/usw Ich mache es für das Beispiel nicht ganz so komplex wie es ist. In ebene4 befinden sich Dateien und weitere Unterverzeichnisse. Synchronisiert werden sollen einige Dateitypen, aber nicht alle, also zB txt, pdf und jpg. Nicht synchronisiert werden sollen die restlichen Dateitypen sowie Verzeichnisse in ebene4. Die Synchronisation soll die Struktur bis ebene4 enthalten und auch alle Verzeichnisse und Dateien bis ebene3 erhalten bleiben. Ich hoffe, ich habe mich gut genug ausgedrückt. Die Verzeichnisse bzw. Dateien, die synchronisiert werden sollen bzw. ausgeschlossen werden sollen, sehe ich als sehr aufwendig. Es geht dabei um 50000-100000 Dateien und tausende Verzeichnisse. Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/02bd3b8e3a436c5b5dac0042a9a9fa6b.jpg?s=120&d=mm&r=g)
Hi Al, Am Dienstag 16 Juni 2009 12:29:28 schrieb Al Bogner:
Da hier die rsync-Spezialisten beisammen sind, hänge ich mich mit einem Problem an, das ich schon längere Zeit zu lösen versuche. Es geht vermutlich um "exclude".
Struktur der Quelle: /ebene/ebene2/ebene3/ebene4/ebene5/usw
Ich mache es für das Beispiel nicht ganz so komplex wie es ist.
In ebene4 befinden sich Dateien und weitere Unterverzeichnisse. Synchronisiert werden sollen einige Dateitypen, aber nicht alle, also zB txt, pdf und jpg. Nicht synchronisiert werden sollen die restlichen Dateitypen sowie Verzeichnisse in ebene4. Die Synchronisation soll die Struktur bis ebene4 enthalten und auch alle Verzeichnisse und Dateien bis ebene3 erhalten bleiben. Ich hoffe, ich habe mich gut genug ausgedrückt. Die Verzeichnisse bzw. Dateien, die synchronisiert werden sollen bzw. ausgeschlossen werden sollen, sehe ich als sehr aufwendig. Es geht dabei um 50000-100000 Dateien und tausende Verzeichnisse.
bau dir ein include file mit find zusammen, damit sollte das gehen. ich hoffe ich hab dich soweit richtig verstanden ... du suchst zuerst 3 ebenen tief nach allem find / -name "ebene?" --maxdepth 3 >includefile find /ebene/ebene2/ebene3/ebene4/ -name "*.txt" >>includefile find /ebene/ebene2/ebene3/ebene4/ -name "*.jpg" >>includefile usw. rsync -av include-from=includefile ... untested! Gruss Falk -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/b6b27958072dd201c9f2bba8b6bfa337.jpg?s=120&d=mm&r=g)
Am Dienstag 16 Juni 2009 14:50:57 schrieb Falk Sauer:
Hi Al,
Am Dienstag 16 Juni 2009 12:29:28 schrieb Al Bogner:
Da hier die rsync-Spezialisten beisammen sind, hänge ich mich mit einem Problem an, das ich schon längere Zeit zu lösen versuche. Es geht vermutlich um "exclude".
Struktur der Quelle: /ebene/ebene2/ebene3/ebene4/ebene5/usw
Ich mache es für das Beispiel nicht ganz so komplex wie es ist.
In ebene4 befinden sich Dateien und weitere Unterverzeichnisse. Synchronisiert werden sollen einige Dateitypen, aber nicht alle, also zB txt, pdf und jpg. Nicht synchronisiert werden sollen die restlichen Dateitypen sowie Verzeichnisse in ebene4. Die Synchronisation soll die Struktur bis ebene4 enthalten und auch alle Verzeichnisse und Dateien bis ebene3 erhalten bleiben. Ich hoffe, ich habe mich gut genug ausgedrückt. Die Verzeichnisse bzw. Dateien, die synchronisiert werden sollen bzw. ausgeschlossen werden sollen, sehe ich als sehr aufwendig. Es geht dabei um 50000-100000 Dateien und tausende Verzeichnisse.
bau dir ein include file mit find zusammen, damit sollte das gehen.
ich hoffe ich hab dich soweit richtig verstanden ...
du suchst zuerst 3 ebenen tief nach allem
Ok, da ist gar nicht so viel drinnen. Wichtig ist aber, dass die _Verzeichnisstruktur_ erhalten bleibt. Im Ziel soll also nicht nur die Datei stehen, die synchronisiert wird, sonder auch der gesamte Pfad dazu. Hat ein Verzeichnis zwar Dateien, aber keine Dateien, die dem Muster entsprechen, soll das Verzeichnis nicht im Ziel angelegt werden.
find / -name "ebene?" --maxdepth 3 >includefile
Da ist schon die 1. Schwierigkeit. Ich hoffe ich verstehe dich richtig. Bei "ebene?" bedeutet das Fragezeichen ein beliebiges Zeichen nach Ebene als Wildcard? Die Verzeichnisse nennen sich nicht ebene+irgendwas. Das war nur beispielhaft. die 1. Ebene wäre der Mountpoint, zB /irgendwas die 2. Ebene hat aber einen ganz anderen Namen und da gibt es eine Reihe von Verzeichnissen darin, also zB /irgendwas/name /irgendwas/bezeichnung /irgendwas/nochwas Mit einer Wildcard sehe ich da keine Möglichkeit Genauso in der 3 und 4. Ebene, wobei in der 4. Ebene dann so richtig viele Dateien sind. Ein include-File das 100.000 Dateien angibt, hört sich für mich abenteuerlich an, aber ich kann es ja mal probieren, wenn geklärt ist, dass es kein Missverständnis gibt.
find /ebene/ebene2/ebene3/ebene4/ -name "*.txt" >>includefile find /ebene/ebene2/ebene3/ebene4/ -name "*.jpg" >>includefile usw. rsync -av include-from=includefile ...
untested!
Ich baue mir ein Testszenario, wenn ich denke, dass das synchronisiert wird was ich will. Danke Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/02bd3b8e3a436c5b5dac0042a9a9fa6b.jpg?s=120&d=mm&r=g)
Hi Al, Am Dienstag 16 Juni 2009 15:37:58 schrieb Al Bogner:
Am Dienstag 16 Juni 2009 14:50:57 schrieb Falk Sauer:
Am Dienstag 16 Juni 2009 12:29:28 schrieb Al Bogner:
Da hier die rsync-Spezialisten beisammen sind, hänge ich mich mit einem Problem an, das ich schon längere Zeit zu lösen versuche. Es geht vermutlich um "exclude".
Struktur der Quelle: /ebene/ebene2/ebene3/ebene4/ebene5/usw
Ich mache es für das Beispiel nicht ganz so komplex wie es ist. du suchst zuerst 3 ebenen tief nach allem
Ok, da ist gar nicht so viel drinnen. Wichtig ist aber, dass die _Verzeichnisstruktur_ erhalten bleibt. Im Ziel soll also nicht nur die Datei stehen, die synchronisiert wird, sonder auch der gesamte Pfad dazu. Hat ein Verzeichnis zwar Dateien, aber keine Dateien, die dem Muster entsprechen, soll das Verzeichnis nicht im Ziel angelegt werden.
find / -name "ebene?" --maxdepth 3 >includefile
Da ist schon die 1. Schwierigkeit. Ich hoffe ich verstehe dich richtig. Bei "ebene?" bedeutet das Fragezeichen ein beliebiges Zeichen nach Ebene als Wildcard?
der 1. find befehl war ja auch nur auf dein beispiel bezogen, du kannst genausogut ein find /irgendwas/ --maxdepth 2 machen oder mehrere find befehle für jede ebene einzeln absetzen. Im Endeffekt solltest du halt möglichst jedes file nur einmal im includefile haben aber auch das ließe sich mit dem unix Werkzeugkasten beheben (Stichwort sort unique). Möglicherweise mußt du noch die option -type f beim find mitgeben weil er sonst ganze Verzeichnisse includieren könnte* ... die darunterliegenden Ordner legt der rsync eh an. leere werden dann halt nicht ge-rsynct. *) ich habs nicht probiert
Die Verzeichnisse nennen sich nicht ebene+irgendwas. Das war nur beispielhaft.
die 1. Ebene wäre der Mountpoint, zB /irgendwas
die 2. Ebene hat aber einen ganz anderen Namen und da gibt es eine Reihe von Verzeichnissen darin,
also zB
/irgendwas/name /irgendwas/bezeichnung /irgendwas/nochwas
Mit einer Wildcard sehe ich da keine Möglichkeit
tut auch nicht wirklich not, geht auch ohne, war wie gesagt ein beispiel passend zum beispiel.
Genauso in der 3 und 4. Ebene, wobei in der 4. Ebene dann so richtig viele Dateien sind.
Ein include-File das 100.000 Dateien angibt, hört sich für mich abenteuerlich an, aber ich kann es ja mal probieren, wenn geklärt ist, dass es kein Missverständnis gibt.
ob rsync ein so großes file als include-from verdaut kommt auf einen Versuch an, ich hoffe die Kiste hat genug RAM. Du kannst auch das includefile teilen nur hast du dann ein Problem mit der --delete Option.
find /ebene/ebene2/ebene3/ebene4/ -name "*.txt" >>includefile find /ebene/ebene2/ebene3/ebene4/ -name "*.jpg" >>includefile usw. rsync -av include-from=includefile ...
untested!
Ich baue mir ein Testszenario, wenn ich denke, dass das synchronisiert wird was ich will.
so war das gedacht Gruss Falk -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/62125288dd40f3bb08a59554fbf73db9.jpg?s=120&d=mm&r=g)
Hallo Axel und Falk, vielen Dank für die detaillierten Erklärungen und die Hilfe. Ich glaube, jetzt habe ich es einigermassen erfasst... Was mich total verwirrte: a) die delete-meldungen von rsync: die sagen mir z.B. "deleting home/daniel/blabla..." und meinen damit eigentlich "deleting /media/baer/home/daniel/blabla..." daher nahm ich an, es wolle mir meine Original-Daten löschen b) die Option -x: da meine diversen Partitions alle reiferfs sind, interpretierte ich die Wirkung von x als "ohne Partitionen, die nicht reiserfs sind" und nicht, wie es offenbar ist als "nur diese eine Partition". Daher wollte mir rsync also alle Dateien des Backups, die nicht auf der einen Partiton sind, wieder vom backup löschen, was zu einer Unmenge von Meldungen führte und mir unerklärlich schien. Der letzte dry-run nun (ohne -x) sieht wesentlich besser aus, und mit einem Testverzeichnis hat es auch funktioniert. Hoffentlich geht es jetzt auch in echt :-) Vielen Dank und Gruss Daniel Bauer On Monday 15 June 2009 21:19:29, Axel Birndt wrote:
Hallo Daniel,
Daniel Bauer schrieb:
Hallo Axel,
vielen Dank, aber...:
Kein Problem :-) Ich versuch mal in Deiner Mail noch was zu erklären:
rsync -avx
-a -> Option für "all" -v -> verbose, mehr Details -x -> nur das eine Filesystem sichern, keine anderen Filesysteme mitsichern.
# -a fasst folgende Optionen zusammen:
* -r kopiert Unterverzeichnisse * -l kopiert symbolische Links * -p behält Rechte der Quelldatei bei * -t behält Zeiten der Quelldatei bei, * -g behält Gruppenrechte der Quelldatei bei * -o behält Besitzrechte der Quelldatei bei (nur root) * -D behält Gerätedateien der Quelldatei bei (nur root)
Ich gehe mal davon aus das Du die folgenden 2 Links kennst:?
http://wiki.ubuntuusers.de/rsync
On Monday 15 June 2009 16:47:25, Axel Birndt wrote:
Weil ich es nicht geschafft habe, die rsync-syntax so zu verstehen
Sorry, aber die manpage ist dafür prima.
Ja, wenn man von Computern ziemlich viel mehr weiss, als dass das so eine Schachtel mit Kabeln dran ist - sicher :-)
Naja kein Problem, Du hast es ja schon mal versucht, jetzt gehen wir einen Schritt weiter
a) / (alles ausser /media, /mnt, /proc, /tmp, var/tmp, var/spool) nach externer HD /media/baer zu kopieren und später nach Updates zu aktualisieren
rsync -avx --exclude='media' --exclude='mnt' --exclude='proc' --exclude='tmp' --exclude='spool' --delete --dry-run / /media/baer/
Also, ich habe eingegeben:
rsync -avx --exclude='/media' --exclude='/mnt' --exclude='/proc' --exclude='/tmp' --exclude='/var/spool' --exclude='/var/tmp' --delete --dry-run / /media/baer
und dann zeigt es mir eine riesige Liste mit allen Dateien, die es löschen würde - und zwar, wenn ich das richtig sehe, auf der SRC-Seite...
Wenn du zuerst den Slash angibst, und danach das Ziel löscht rsync nicht. Deshalb mit --dry-run testen. Wie gesagt, vielleicht auch erstmal die "--delete" Option weglassen.
Eventuell kannst Du den rsync Befehl erstmal mit anderen Daten testen? Zum Beispiel ein Testverzeichnis erstellen und damit den rsync Befehl testen, bis er das tut, was Du möchtest.
Bitte in der Manpage nachlesen und dann "--dry-run" entfernen.
Eben, was ich da so sehe, kann mir das auch nicht erklären. Es müsste doch höchstens auf der DEST-Seite löschen, oder?
Ja, genau. Ich denke einfach mal, das es für jemanden, der beginnt, so ausssieht, als ob die Quelle gelöscht würde. Wie oben genannt, an einem Testverzeichnis probieren.
Siehst du was, was ich in meinem Befehl falsch gemacht habe? (ich habe die exclude-parameter anders geschrieben, und den DEST auch ohne "/" am Schluss - eine Mischung aus deiner und Andres Antwort.)
Und warum hast du noch den Parameter x, den Andre nicht verwendet?
-x sagt aus, das der rsync nur auf das aktuelle Filesystem wirken soll.
(Ehrlich: ich habe in man nachgeschaut, aber das hilft mir nicht, zu entscheiden, ob es jetzt x braucht oder nicht - auch wie man das mit dem exclude nun genau richtig macht, übersteigt mein Begriffsvermögen...)
Ich habe Dir schon die excludes korrekt zusammengebaut, auch wenn es erstmal umständlich aussieht.
Versuchs noch mal und teste es. Wenn Du noch Fragen hast, dann ein Beispiel posten und die Beschreibung, was warum funktioniert hat, oder auch nicht... Dann versuchen wir es zu klären..
--
Gruß Axel -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/62125288dd40f3bb08a59554fbf73db9.jpg?s=120&d=mm&r=g)
Nun hat alles genau richtig funktioniert. Nochmal Dank an alle für die Hilfe! Daniel On Tuesday 16 June 2009 10:23:43, Daniel Bauer wrote:
Hallo Axel und Falk,
vielen Dank für die detaillierten Erklärungen und die Hilfe. Ich glaube, jetzt habe ich es einigermassen erfasst...
Was mich total verwirrte:
a) die delete-meldungen von rsync:
die sagen mir z.B. "deleting home/daniel/blabla..." und meinen damit eigentlich "deleting /media/baer/home/daniel/blabla..." daher nahm ich an, es wolle mir meine Original-Daten löschen
b) die Option -x:
da meine diversen Partitions alle reiferfs sind, interpretierte ich die Wirkung von x als "ohne Partitionen, die nicht reiserfs sind" und nicht, wie es offenbar ist als "nur diese eine Partition".
Daher wollte mir rsync also alle Dateien des Backups, die nicht auf der einen Partiton sind, wieder vom backup löschen, was zu einer Unmenge von Meldungen führte und mir unerklärlich schien.
Der letzte dry-run nun (ohne -x) sieht wesentlich besser aus, und mit einem Testverzeichnis hat es auch funktioniert. Hoffentlich geht es jetzt auch in echt :-)
Vielen Dank und Gruss
Daniel Bauer
On Monday 15 June 2009 21:19:29, Axel Birndt wrote:
Hallo Daniel,
Daniel Bauer schrieb:
Hallo Axel,
vielen Dank, aber...:
Kein Problem :-) Ich versuch mal in Deiner Mail noch was zu erklären:
rsync -avx
-a -> Option für "all" -v -> verbose, mehr Details -x -> nur das eine Filesystem sichern, keine anderen Filesysteme mitsichern.
# -a fasst folgende Optionen zusammen:
* -r kopiert Unterverzeichnisse * -l kopiert symbolische Links * -p behält Rechte der Quelldatei bei * -t behält Zeiten der Quelldatei bei, * -g behält Gruppenrechte der Quelldatei bei * -o behält Besitzrechte der Quelldatei bei (nur root) * -D behält Gerätedateien der Quelldatei bei (nur root)
Ich gehe mal davon aus das Du die folgenden 2 Links kennst:?
http://wiki.ubuntuusers.de/rsync
On Monday 15 June 2009 16:47:25, Axel Birndt wrote:
Weil ich es nicht geschafft habe, die rsync-syntax so zu verstehen
Sorry, aber die manpage ist dafür prima.
Ja, wenn man von Computern ziemlich viel mehr weiss, als dass das so eine Schachtel mit Kabeln dran ist - sicher :-)
Naja kein Problem, Du hast es ja schon mal versucht, jetzt gehen wir einen Schritt weiter
a) / (alles ausser /media, /mnt, /proc, /tmp, var/tmp, var/spool) nach externer HD /media/baer zu kopieren und später nach Updates zu aktualisieren
rsync -avx --exclude='media' --exclude='mnt' --exclude='proc' --exclude='tmp' --exclude='spool' --delete --dry-run / /media/baer/
Also, ich habe eingegeben:
rsync -avx --exclude='/media' --exclude='/mnt' --exclude='/proc' --exclude='/tmp' --exclude='/var/spool' --exclude='/var/tmp' --delete --dry-run / /media/baer
und dann zeigt es mir eine riesige Liste mit allen Dateien, die es löschen würde - und zwar, wenn ich das richtig sehe, auf der SRC-Seite...
Wenn du zuerst den Slash angibst, und danach das Ziel löscht rsync nicht. Deshalb mit --dry-run testen. Wie gesagt, vielleicht auch erstmal die "--delete" Option weglassen.
Eventuell kannst Du den rsync Befehl erstmal mit anderen Daten testen? Zum Beispiel ein Testverzeichnis erstellen und damit den rsync Befehl testen, bis er das tut, was Du möchtest.
Bitte in der Manpage nachlesen und dann "--dry-run" entfernen.
Eben, was ich da so sehe, kann mir das auch nicht erklären. Es müsste doch höchstens auf der DEST-Seite löschen, oder?
Ja, genau. Ich denke einfach mal, das es für jemanden, der beginnt, so ausssieht, als ob die Quelle gelöscht würde. Wie oben genannt, an einem Testverzeichnis probieren.
Siehst du was, was ich in meinem Befehl falsch gemacht habe? (ich habe die exclude-parameter anders geschrieben, und den DEST auch ohne "/" am Schluss - eine Mischung aus deiner und Andres Antwort.)
Und warum hast du noch den Parameter x, den Andre nicht verwendet?
-x sagt aus, das der rsync nur auf das aktuelle Filesystem wirken soll.
(Ehrlich: ich habe in man nachgeschaut, aber das hilft mir nicht, zu entscheiden, ob es jetzt x braucht oder nicht - auch wie man das mit dem exclude nun genau richtig macht, übersteigt mein Begriffsvermögen...)
Ich habe Dir schon die excludes korrekt zusammengebaut, auch wenn es erstmal umständlich aussieht.
Versuchs noch mal und teste es. Wenn Du noch Fragen hast, dann ein Beispiel posten und die Beschreibung, was warum funktioniert hat, oder auch nicht... Dann versuchen wir es zu klären..
--
Gruß Axel
-- Daniel Bauer photographer Basel Barcelona professional photography: http://www.daniel-bauer.com erotic art photos: http://www.bauer-nudes.com Madagascar special: http://www.fotograf-basel.ch/madagascar/ -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/164a625f3a558d1dac0727ce6a3ba850.jpg?s=120&d=mm&r=g)
Daniel Bauer [16.06.2009 10:23]:
b) die Option -x:
da meine diversen Partitions alle reiferfs sind, interpretierte ich die Wirkung von x als "ohne Partitionen, die nicht reiserfs sind" und nicht, wie es offenbar ist als "nur diese eine Partition".
reiserfs ist kein Dateisystem, sondern ein Dateisystemtyp. Du kannst viele Filesysteme von diesem Typ anlegen ;-) Du kannst mehrere Partitionen mit unterschiedlichen Filesystemtypen anlegen und sie hinterher zum Verzeichnisbaum zusammenfassen. Beispiel: Mountpunkt Partition Filesystemtyp / /dev/sda2 ext3 +--- /boot /dev/sda3 ext2 +--- /home /dev/sdb2 reiserfs +-+- /usr /dev/sdb1 ext3 +- /usr/lib /dev/sdb2 xfs usw. Wenn bei dieser Konstruktion die Rede von einem "Filesystem" ist, bedeutet das "eine Partition". Wenn ich also "rsync -x ... / /backup" eingebe, wird nur das gesichert, was *direkt* im Filesystem / enthalten ist, und nichts, was z. B. in /usr steht, obwohl es denselben Filesystemtyp hat. Ob das -x etwas ist, was man will, muss jeweils eine Einzelfallentscheidung sein :-) Gruß Werner -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/1cf53bbe68141b5c35a0b6ed309cf54b.jpg?s=120&d=mm&r=g)
Daniel Bauer, Dienstag 16 Juni 2009:
die sagen mir z.B. "deleting home/daniel/blabla..." und meinen damit eigentlich "deleting /media/baer/home/daniel/blabla..." daher nahm ich an, es wolle mir meine Original-Daten löschen
--delete wird immer nur im Zielverzeichnisch löschen. Ein Löschen im Quellverzeichnis wäre widersinnig. Und den Pfad der zu löschenden Dateien gibt rsync hier relativ an.
b) die Option -x:
da meine diversen Partitions alle reiferfs sind, interpretierte ich die Wirkung von x als "ohne Partitionen, die nicht reiserfs sind" und nicht, wie es offenbar ist als "nur diese eine Partition".
Darum gehts nicht direkt, und es kommt auch nicht darauf an, ob Du reiserfs oder xfs oder was anderes benutzt. Nehmen wir an, Du hast folgendes gebaut: /home = reiserfs auf hda2 /home/daten/video = reiserfs auf hda3 Würdest Du nun rsync -ax... /home /ziel absetzen, so würde /home/daten/video... nicht mitgesichert, weil es sich hier um ein neues Dateisystem handelt, das auf diesem Mountpoint eingehängt ist. Und mit -x hast Du rsync verboten, das Dateisystem zu wechseln. Ein rsync -a... /home /ziel würde dagegen auch Deine Videos mitsichern. -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/1cf53bbe68141b5c35a0b6ed309cf54b.jpg?s=120&d=mm&r=g)
Daniel Bauer, Montag 15 Juni 2009:
zunächst mal a) / (alles ausser /media, /mnt, /proc, /tmp, var/tmp, var/spool) nach externer HD /media/baer zu kopieren und später nach Updates zu aktualisieren
rsync -av --delete --progress --exclude="/media /mnt ..." / /media/baer
b) nur /home (komplett mit allen usern, allen Verzeichnissen und Dateien) auf externer HD /media/baer/home aktualisieren
rsync -av --delete --progress /home /media/baer Beachte, daß es nicht /home/ heißen darf, sonst sicherst Du nur unterhalb von /home. Mit /home sicherst Du /home mit allen Unterordnern. Eine Verschiebung um eine Ebene also. Bitte schau nochmal bei dem exclude-Parameter nach, da bin ich nicht so sicher, da aus dem Kopf zitiert. -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (8)
-
Al Bogner
-
Andre Tann
-
Axel Birndt
-
Daniel Bauer
-
Falk Sauer
-
Fred Ockert
-
Hochegger Juergen
-
Werner Flamme