rsync: So schließen Sie das oberste Verzeichnis aus

rsync: So schließen Sie das oberste Verzeichnis aus

Ich habe also ein scheinbar einfaches Problem, für das ich bisher aber noch keine Lösung gefunden habe: Ich möchte das oberste Verzeichnis von einem rsync ausschließen, aber trotzdem alle seine untergeordneten Verzeichnisse synchronisieren. Das besondere Problem besteht darin, dass ich keine Berechtigung habe, die Zeiten des obersten Verzeichnisses zu ändern, aber möchte, dass alle untergeordneten Verzeichnisse ordnungsgemäß synchronisierte Zeiten haben.

Der von mir verwendete rsync-Befehl lautet wie folgt:

rsync --exclude ./ -rlptDu ./ server.example.com:/usr/local/directory/

und server.example.com:/usr/local/directory/sieht so aus:

drwxrws---  5 root   staff 24576 Jul  9 15:00 .

(mein lokaler Benutzer ist Mitglied von staff)

Wenn ich rsync ausführe, erhalte ich die folgende Fehlermeldung:

rsync: failed to set times on "/usr/local/directory/.": Operation not permitted (1)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]
make: *** [pub_to_mel_internal] Error 23

Dies ist Version 3.0.9 auf dem lokalen Computer und 3.0.7 auf dem Remote-Computer, beide Computer laufen unter Debian.

Antwort1

Ich denke, die Filterregeln von rsync können nicht mit dem obersten Verzeichnis übereinstimmen, daher wird es immer synchronisiert. Eine Problemumgehung besteht darin, alle Dateien in diesem Verzeichnis zu synchronisieren, anstatt das Verzeichnis selbst.

rsync -rlptDu -- * server.example.com:/usr/local/directory/

Fügen Sie .[!.]*danach hinzu *, wenn sich im obersten Verzeichnis Punktdateien befinden und ..?*wenn Ihre Dateinamen mit zwei Punkten beginnen.

Antwort2

Es scheint, dass rsync das oberste Verzeichnis mit folgendem Befehl ausschließen kann --files-from:

$ rsync -anv from/ to/
sending incremental file list
./
a
b.test

sent 97 bytes  received 25 bytes  244.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)
$ printf '%s\n' 'a' 'b.test' | rsync -anv --files-from=- from/ to/
building file list ... done
a
b.test

sent 88 bytes  received 22 bytes  220.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)

Bin gerade darüber gestolpert und hinterlasse hier einen Hinweis, falls es jemandem (oder mir in der Zukunft) hilft.

verwandte Informationen