Rsync vários diretórios em uma linha

Rsync vários diretórios em uma linha

Eu tenho uma tarefa simples que posso realizar com várias linhas, mas queria executá-la por meio de apenas 1 cron job como 1 linha e não ter 12 linhas separadas. Aqui está a configuração:

Tenha uma pasta em um compartilhamento de processamento de imagens que obtém imagens e as move para 12 pastas diferentes, dependendo da localização e outras coisas. Os nomes das pastas são 1a, 2a, 3a, 4a, 5a, 6a, etc. As pastas 1a-6a precisam ir para uma unidade montada em dr01 e as pastas 7a-12a precisam ir para uma pasta montada chamada dr02. Cada uma das pastas #a contém várias subpastas e arquivos.

Então, quero sincronizar novamente ../images/1a para ..DR01/1a duas vezes por dia. Posso fazer isso para cada pasta individualmente com:

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

Eu gostaria de poder sincronizar o diretório inteiro, mas como metade dos arquivos vai para um compartilhamento e a outra metade para outro, tenho que separá-los.

Existe uma maneira melhor de fazer isso sem precisar criar 12 trabalhos rsync para sincronizar cada pasta? Existe uma maneira de agrupá-los na linha rsync ou algo parecido? Eu costumava usar union-fs para fundir os DRs, mas essa não é mais uma opção funcional.

Agradecemos antecipadamente por quaisquer dicas que possam me ajudar a resolver esse problema.

Responder1

Algo assim pode funcionar para você, assumindo um shell que pode expandir {x..y}construções de tipo. (Teste-o na linha de comando prefixando toda a linha com 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/

informação relacionada