Script Bash rsync --include-from fail

1

Eu escrevi um script bash para backup de pastas e arquivos de uma máquina para o nosso servidor de backup. Meu objetivo é excluir todos os arquivos com mais de 6 meses desse backup semanal. Para fazer isso, usei um comando find para criar um arquivo txt que contém o caminho desses arquivos.

find . -type f -mtime -200 -fprintf $SCRIPT_DIR/Exclusions.txt "%P\n"

E então eu usei a opção "--include-from" do rsync.

rsync . -e ssh -qrtl --exclude-from=$SCRIPT_DIR/Exclusions.txt $USER@$DEST_SRV:$DEST_DIR

O resultado foi o backup realizado, mas não a inclusão. Então, todos os arquivos foram salvos em backups, mesmo estes com mais de 6 meses.

Como posso fazer isso?

Obrigado antecipadamente

    
por gerem 15.06.2015 / 10:58

2 respostas

0

De acordo com as páginas man,

--exclude=PATTERN       exclude files matching PATTERN
--exclude-from=FILE     read exclude patterns from FILE
--include=PATTERN       don't exclude files matching PATTERN
--include-from=FILE     read include patterns from FILE

A exclusão é feita a partir do padrão de leitura dos arquivos, e não de acordo com os nomes dos arquivos em si.

Eu concordo que incluir / excluir arquivos de acordo com nomes também pode ser útil, mas não é assim que funciona.

Você pode tentar algo assim para incluir arquivos há mais de uma semana:

--files-from=<(find . -mtime -7 -print0)
    
por 15.06.2015 / 11:16
0

Ok, resolvi meu problema! A linha "encontrar" permanece a mesma:

find . -type f -mtime -200 -fprintf $SCRIPT_DIR/includes.txt "%P\n"

E eu uso a opção "--files-from" em vez de "--exclude-from"

rsync . -e ssh -qrtl --files-from=$SCRIPT_DIR/includes.txt $USER@$DEST_SRV:$DEST_DIR
    
por 15.06.2015 / 14:52