rsync mit Dateimasken
Ich bräuchte mal Hilfe bei den Parametern von rsync. Als Erstes habe ich probiert: rsync -ave (...) ~/Documents/texte/text1/*[odt|doc] /backup-server Das hat geklappt. Damit werden OpenOffice-Dokumente kopiert, während Sicherungskopien usw. nicht mitgenommen werden. Nun habe ich aber unter /texte/ mehrere Verzeichnisse mit Texten. Ich würde das jetzt gern so umbauen, dass rsync auch die Verzeichnisstruktur mitnimmt, also ungefähr so: rsync -aved (...) ~/Documents/texte/*/*[odt|doc] /backup-server Die Parameter -aved tun das leider nicht. Was muss ich da einsetzen? Danke! Jürgen -- 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
Hallo Juergen, warum nicht: rsync -avH ~/Documents/texte --exclude *.bak /backup-server Gruß Chris Juergen Langowski schrieb:
Ich bräuchte mal Hilfe bei den Parametern von rsync.
Als Erstes habe ich probiert:
rsync -ave (...) ~/Documents/texte/text1/*[odt|doc] /backup-server
Das hat geklappt. Damit werden OpenOffice-Dokumente kopiert, während Sicherungskopien usw. nicht mitgenommen werden.
Nun habe ich aber unter /texte/ mehrere Verzeichnisse mit Texten. Ich würde das jetzt gern so umbauen, dass rsync auch die Verzeichnisstruktur mitnimmt, also ungefähr so:
rsync -aved (...) ~/Documents/texte/*/*[odt|doc] /backup-server
Die Parameter -aved tun das leider nicht. Was muss ich da einsetzen?
Danke! Jürgen
-- 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
Am Mittwoch, 15. Juli 2009 22:47 schrieb Juergen Langowski:
Nun habe ich aber unter /texte/ mehrere Verzeichnisse mit Texten. Ich würde das jetzt gern so umbauen, dass rsync auch die Verzeichnisstruktur mitnimmt, also ungefähr so:
rsync -aved (...) ~/Documents/texte/*/*[odt|doc] /backup-server
Die Parameter -aved tun das leider nicht. Was muss ich da einsetzen?
Ich habe jetzt fast gar keine Ahnung über rsync. Da ich mich aber in Zukunft mit dem Thema beschäftigen möchte interessiert mich Dein Thread, ich habe mal die manpage von rsync überflogen. Darin und in Deiner Zeile sind mir einige Sachen aufgefallen: 1. Die Option "-a" beinhaltet "-r" = "recurse into directories" Andererseits bedeutet "-d" = "transfer directories without recursing" Das ist womöglich ein Widerspruch, den Du nicht wünschst. 2. Bist Du sicher, die doppelten Wildcards (*) für Unterverzeichnis und Dateiname funktionieren? 3. Es kann sein, dass Du die Quelle Quoten musst, weil die Wildcards schon von der Shell expandiert werden. Was sagt David dazu? Schlagt mich bitte nicht, wenn ich falsch liege;-) Gute Nacht Ralf -- Antworten bitte nur in die Mailingliste! PMs bitte an: listpm (@) arndt-de (.) eu -- 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
Hallo, Am Don, 16 Jul 2009, Ralf Arndt schrieb: >Am Mittwoch, 15. Juli 2009 22:47 schrieb Juergen Langowski: > >> Nun habe ich aber unter /texte/ mehrere Verzeichnisse mit Texten. >> Ich würde das jetzt gern so umbauen, dass rsync auch die >> Verzeichnisstruktur mitnimmt, also ungefähr so: >> >> rsync -aved (...) ~/Documents/texte/*/*[odt|doc] /backup-server [..] >3. Es kann sein, dass Du die Quelle Quoten musst, weil die Wildcards >schon von der Shell expandiert werden. Was sagt David dazu? Ich glaube nicht, daß rsync die selber expandiert. Und '*[odt|doc]' kommt mir auch spanisch vor. Korrekt wäre: '*{odt,doc}'. Ansonsten hat die Shell keine Probleme damit */*.{odt,doc} zu expandieren, allerdings kann dann die Kommandozeile zu lang werden. Mein Vorschlag wäre --include bzw. ein include-file zu verwenden. Siehe den Abschnitt FILTER RULES in man rsync. -dnh -- [..] dass man die Tastatur immer wieder mal saeubern sollte damit nicht irgendwelche froehlich vor sich hinrottenden Essensreste zu boesen Killeramoeben, mutieren die zwischen den Tasten hervorquellen und Plaene schmieden um die Weltherrschaft an sich zu reissen. -- J. Grassler -- 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
Am Donnerstag, 16. Juli 2009 07:34:18 schrieb David Haller: (...)
Ich glaube nicht, daß rsync die selber expandiert. Und '*[odt|doc]' kommt mir auch spanisch vor. Korrekt wäre: '*{odt,doc}'.
Stimmt, wie ich jetzt erst sehe, ist bei meiner Version mit [] offenbar die Verarbeitung nach dem * abgebrochen, deshalb hat es auf alles gepasst, also auch auf *txt und *rtf, was ich eigentlich nicht mit erfassen wollte. Dein Vorschlag führt allerdings leider zu einer Fehlermeldung. Um das Problem zu vereinfachen, habe ich mal statt rsync nur ls und ein fest vorgegebenes Verzeichnis benutzt: === #!/bin/bash from="/home/jl/Documents/texte/sundering/*{odt,doc}" ls $from === Ob ich das an rsync übergebe oder hier nur mit ls teste, ist egal, da kommt immer eine Fehlermeldung: "ls: Zugriff auf /home/jl/Documents/texte/sundering/*{odt,doc} nicht möglich: Datei oder Verzeichnis nicht gefunden" oder eben: "rsync: link_stat "/home/jl/Documents/texte/sundering/*{odt,doc}" failed: No such file or directory (2)" Es liegt am Zugriff und nicht am Fehlen der Dateien. Die sind eindeutig da.
Ansonsten hat die Shell keine Probleme damit */*.{odt,doc} zu expandieren, allerdings kann dann die Kommandozeile zu lang werden.
Mein Vorschlag wäre --include bzw. ein include-file zu verwenden.
Siehe den Abschnitt FILTER RULES in man rsync.
Wär vielleicht einfacher, als hier weiter rumzuspielen. Jürgen -- 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
Hallo, Am Don, 16 Jul 2009, Juergen Langowski schrieb:
Am Donnerstag, 16. Juli 2009 07:34:18 schrieb David Haller:
Ich glaube nicht, daß rsync die selber expandiert. Und '*[odt|doc]' kommt mir auch spanisch vor. Korrekt wäre: '*{odt,doc}'.
Stimmt, wie ich jetzt erst sehe, ist bei meiner Version mit [] offenbar die Verarbeitung nach dem * abgebrochen, deshalb hat es auf alles gepasst, also auch auf *txt und *rtf, was ich eigentlich nicht mit erfassen wollte.
Dein Vorschlag führt allerdings leider zu einer Fehlermeldung. Um das Problem zu vereinfachen, habe ich mal statt rsync nur ls und ein fest vorgegebenes Verzeichnis benutzt:
=== #!/bin/bash
from="/home/jl/Documents/texte/sundering/*{odt,doc}" ls $from
Die {} werden da nicht mehr expandiert.
Mein Vorschlag wäre --include bzw. ein include-file zu verwenden.
Siehe den Abschnitt FILTER RULES in man rsync.
Wär vielleicht einfacher, als hier weiter rumzuspielen.
Jup. -dnh -- liegt es vielleicht an den lauschigen 34°, die der Prozessor oder sowas nicht mitmacht? -> Soll ich mit dem Rechner jetzt zum Baggersee rausfah- ren und ihm ne Abkühlung verpassen... [Sebastian Schulze in suse-linux] -- 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
On Thu 16 Jul 2009 17:34:18 NZST +1200, David Haller wrote: > >> rsync -aved (...) ~/Documents/texte/*/*[odt|doc] /backup-server > [..] > >3. Es kann sein, dass Du die Quelle Quoten musst, weil die Wildcards > >schon von der Shell expandiert werden. Was sagt David dazu? > > Ich glaube nicht, daß rsync die selber expandiert. Und '*[odt|doc]' > kommt mir auch spanisch vor. Korrekt wäre: '*{odt,doc}'. Ehm, nein. rsync expandiert auch wildcards, rsync wildcards sind den shell wildcards ähnlich, aber es gibt wichtige Unterschiede. "/" Am Anfang verankert das im aktuellen Verzeichnis, Default ist jeden Pfadlosen Namen in jeder Ebene(!) zu vergleichen. Achtung bei --exclude damit! Ein "/" am Ende erkennt nur Verzeichnisse, keine Dateien. Für rsyncs .../**/... gibt es von der shell nichts Vergleichbares, bei regex müßte man schon nachdenken und es artet in Fummelei aus. Wenn ich mich recht erinnere, hatten zumindest ältere rsync-Versionen keine Muster-Alternativen. Also unbedingt rsync Handbuch lesen! Natürlich expandiert die shell alles, was nicht in Anführungszeichen steht. Wie immer halt. Damit kann man sich mit rsync --delete --exclude mine* a b c so wunderbar in den Fuß schießen! > Ansonsten hat die Shell keine Probleme damit */*.{odt,doc} zu > expandieren, bash expandiert {,} eben NICHT als wildcard, nur als Zeichenkette, was auch zu unangenehmen Überraschungen führen kann. Mit ein Grund warum ich für Interaktives bei tcsh geblieben bin. Volker -- Volker Kuhlmann is list0570 with the domain in header http://volker.dnsalias.net/ Please do not CC list postings to me. -- 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
Hallo, Am Don, 16 Jul 2009, Volker Kuhlmann schrieb: >On Thu 16 Jul 2009 17:34:18 NZST +1200, David Haller wrote: >> >> rsync -aved (...) ~/Documents/texte/*/*[odt|doc] /backup-server >> [..] >> >3. Es kann sein, dass Du die Quelle Quoten musst, weil die Wildcards >> >schon von der Shell expandiert werden. Was sagt David dazu? >> >> Ich glaube nicht, daß rsync die selber expandiert. Und '*[odt|doc]' >> kommt mir auch spanisch vor. Korrekt wäre: '*{odt,doc}'. > >rsync expandiert auch wildcards, Aber auch an dieser Stelle bei der Quell-Angabe? Und dann müßte man die Wildcards vor der Shell schützen (wie bei find auch z.B.). Daß rsync das bei include/exclude/filter(-Dateien) macht ist bekannt. -dnh -- hm. I've lost a machine.. literally _lost_. it responds to ping, it works completely, I just can't figure out where in my apartment it is. -- bash.org/?top -- 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 (5)
-
Christian
-
David Haller
-
Juergen Langowski
-
Ralf Arndt
-
Volker Kuhlmann