Rsync múltiples directorios en una línea

Rsync múltiples directorios en una línea

Tengo una tarea simple que puedo hacer con varias líneas, pero quería ejecutarla a través de solo 1 trabajo cron como 1 línea y no tener 12 líneas separadas. Aquí está la configuración:

Tenga una carpeta en un recurso compartido de procesamiento de imágenes que obtenga imágenes y las mueva a 12 carpetas diferentes según la ubicación y otras cosas. Los nombres de las carpetas son 1a, 2a, 3a, 4a, 5a, 6a, etc. a 12a. Las carpetas 1a-6a deben ir a una unidad montada en dr01 y las carpetas 7a-12a deben ir a una carpeta montada llamada dr02. Cada una de las carpetas #a tiene muchas subcarpetas y archivos en su interior.

Entonces, quiero rsync ../images/1a a ..DR01/1a dos veces al día. Puedo hacer esto para cada carpeta individualmente con:

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

Desearía poder sincronizar todo el directorio, pero como la mitad de los archivos van a un recurso compartido y la otra mitad a otro, tengo que dividirlos.

¿Existe una mejor manera de hacer esto sin tener que crear 12 trabajos rsync para sincronizar cada carpeta? ¿Hay alguna manera de agruparlos en la línea rsync o algo así? Solía ​​​​usar union-fs para fusionar los DR, pero esa ya no es una opción que funcione.

Gracias de antemano por cualquier consejo que pueda ayudarme a resolver este problema.

Respuesta1

Algo como esto podría funcionar para usted, suponiendo un shell que pueda expandir {x..y}construcciones de tipos. (Pruébelo desde la línea de comandos anteponiendo toda la línea con 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/

información relacionada