rsync - Exclui uma certa extensão de arquivo, a menos que seja compactado

0

Atualmente, tenho um script cron agendado .sh que invoca rsync uma vez por semana:

DAY0='date -I'
DAY1='date -I -d "1 week ago"'
rsync -aAXv --delete --link-dest=/media/backup/$DAY1 / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/backup","/lost+found","*.SAM","*.BAM"} /media/backup/$DAY0

Desejo excluir qualquer arquivo com extensão .fastq , mas inclua '.fastq.gz'. Isto é, além de fazer o backup do resto do sistema como por normal.

Como isso pode ser feito?

    
por AnnaSchumann 22.03.2018 / 12:18

1 resposta

1

Em vez de excluir cada tipo de arquivo que você não deseja , inclua aqueles que deseja:

rsync ...other rsync options... \
    --include='*.fasta.gz' --exclude='*' source/ destination/

Você também pode querer usar a opção --one-filesystem ( -x ) que impede que rsync atravesse outros sistemas de arquivos além daquele em que o diretório de origem está localizado.

Como alternativa, especifique *.fasta.gz em um padrão de inclusão e, em seguida, *.fasta em um padrão de exclusão.

Para backups, sugiro algo como borgbackup (possivelmente junto com borgmatic ) ou restic em vez de rsync . Todos esses dados de desduplicação fazem com que os backups ocupem muito menos espaço.

    
por 22.03.2018 / 12:24

Tags