Rsync vários diretórios em uma linha

3

Eu tenho uma tarefa simples que eu posso fazer com várias linhas, mas eu queria executar isso apenas com 1 tarefa cron como 1 linha e não ter 12 linhas separadas. Aqui está a configuração:

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

Então, eu quero rsync ../images/1a para ..DR01 / 1a duas vezes por dia. Eu 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 está indo para um compartilhamento e a outra metade para outro, eu tenho que separá-los.

Existe uma maneira melhor de fazer isso sem ter que criar 12 tarefas de rsync para sincronizar cada pasta? Existe uma maneira de agrupá-los na linha rsync ou algo assim? Eu costumava usar union-fs para fundir os DRs juntos, mas isso não é mais uma opção de trabalho.

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

    
por saleetzo 31.05.2017 / 00:13

1 resposta

2

Algo como isso pode funcionar para você, supondo um shell que possa expandir as construções {x..y} type. (Teste-o a partir da linha de comando, prefixando a linha inteira 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/
    
por 31.05.2017 / 00:36

Tags