Rsync mehrere Verzeichnisse in einer Zeile

Rsync mehrere Verzeichnisse in einer Zeile

Ich habe eine einfache Aufgabe, die ich mit mehreren Zeilen erledigen kann, aber ich wollte diese durch nur einen Cron-Job als eine Zeile ausführen und nicht 12 separate Zeilen haben. Hier ist das Setup:

Legen Sie einen Ordner auf einer Bildverarbeitungsfreigabe an, der Bilder abruft und sie je nach Standort und anderen Faktoren in 12 verschiedene Ordner verschiebt. Die Ordnernamen lauten 1a, 2a, 3a, 4a, 5a, 6a usw. bis 12a. Die Ordner 1a-6a müssen auf ein gemountetes Laufwerk auf dr01 und die Ordner 7a-12a müssen in einen gemounteten Ordner namens dr02 verschoben werden. Jeder der #a-Ordner enthält viele Unterordner und Dateien.

Ich möchte also zweimal täglich ../images/1a mit ..DR01/1a synchronisieren. Dies kann ich für jeden Ordner einzeln tun mit:

rsync -avh --remove-source-files /images/1a/ /usr/local/blah/dr02/1a/

Ich wünschte, ich könnte einfach das gesamte Verzeichnis synchronisieren, aber da die Hälfte der Dateien auf eine Freigabe und die andere Hälfte auf eine andere geht, muss ich sie aufteilen.

Gibt es eine bessere Möglichkeit, dies zu tun, ohne 12 Rsync-Jobs erstellen zu müssen, um jeden Ordner zu synchronisieren? Gibt es eine Möglichkeit, sie in der Rsync-Zeile zu gruppieren oder so etwas? Früher habe ich union-fs verwendet, um die DRs zusammenzuführen, aber das ist keine funktionierende Option mehr.

Vielen Dank im Voraus für alle Tipps, die mir bei der Lösung dieses Problems helfen können.

Antwort1

So etwas könnte für Sie funktionieren, vorausgesetzt, Sie verfügen über eine Shell, die {x..y}Typkonstrukte erweitern kann. (Testen Sie es von der Befehlszeile aus, indem Sie der gesamten Zeile ein Präfix voranstellen echo.)

rsync -avh --remove-source-files /images/{1..6}a /mnt/dr01/
rsync -avh --remove-source-files /images/{7..12}a /usr/local/blah/dr02/

verwandte Informationen