rsync - quelle aus datei
Lars
- software
0 Blaubart
Hallo,
ich versuche gerade ein rsync durchzuführen das die Quelldaten aus einer Datei liest statt live aus einem Ordner. Das funktioniert soweit auch, aber ich aber ein Problem:
In meiner Quelldatei sind zeilenweise Ddateien und Ordner gemischt.
/pfad/pfad/ordner
/pfad/pfad/ordner/datei
Wenn rsync so eine Zeile liest die nur den Pfad zu einem Ordner enthält dann synct es den kompletten Ordnerinhalt. Das ist aber nicht gewollt, es soll nur angegebene Dateien syncen.
Ich kann im Grunde prüfen ob so eine Zeile enthalten ist und eine neue Datei mit reinen Dateien erstellen, allerdings kann es auch vorkommen das es leere Ordner gibt die gesynct werden sollen, die würde ich dann auch weglassen.
Als rsync Optionen verwende ich momentan: -lptgoD -d
Was ist hier der beste Weg?
Danke,
Lars
Tach.
ich versuche gerade ein rsync durchzuführen das die Quelldaten aus einer Datei liest statt live aus einem Ordner.
Dafür benutzt Du doch sicher --files-from, richtig?
Wenn rsync so eine Zeile liest die nur den Pfad zu einem Ordner enthält dann synct es den kompletten Ordnerinhalt. Das ist aber nicht gewollt, es soll nur angegebene Dateien syncen.
Wenn Du es nicht explizit angibst (entweder durch -r oder durch abschließende Slashes an den Verzeichnisnamen), macht rsync das nicht.
allerdings kann es auch vorkommen das es leere Ordner gibt die gesynct werden sollen, die würde ich dann auch weglassen.
Wenn Du keine speziellen Anweisungen (siehe oben) gibst, sollte rsync bereits genau das tun, was Du willst: in der Liste enthalteten Verzeichnisse erstellen, deren Inhalt aber nicht automatisch kopieren. Ich habe das gerade mit rsync 3.0.6 ausprobiert:
~$ cat syncsrc.txt
/bin
/lib/init/vars.sh
/etc/emacs/
~$ rsync -n -v --files-from=syncsrc.txt / .
building file list ... done
bin/
etc/
etc/emacs/
etc/emacs/site-start.el
etc/emacs/site-start.d/
lib/
lib/init/
lib/init/vars.sh
sent 177 bytes received 36 bytes 426.00 bytes/sec
total size is 949 speedup is 4.46 (DRY RUN)
Beachte in der Liste den Slash hinter /etc/emacs. Der führt dazu, daß der Verzeichnisinhalt kopiert wird. Bei /bin hingegen passiert das nicht, da dort der abschließende Slash fehlt.
Was ist hier der beste Weg?
Den kompletten Aufruf, den Du verwendest, hier posten und auch den Teil Deiner Liste, bei dem Deine Probleme auftreten.