RSYNC de remoto para local, exceto pastas

2

Como posso fazer o download de um servidor remoto para um local, excluindo pastas ou arquivos?

Eu usei algo assim, mas a exclusão não funciona ...

rsync -avr -P -e ssh --exclude=/path/to/exclude/* user@ipaddress:/home/path/to/copy /home/user/www

Sugestões?

    
por Rob 06.06.2012 / 17:03

2 respostas

4

O problema aqui provavelmente está nos caminhos dos filtros exclude no rsync.

Os caminhos usados na lista de arquivos rsync são relativos ao caminho SOURCE.

Isto é, se a sua estrutura de diretórios é

 /home/path/to/copy
                | files_to_copy
                     | file1
                     \ file2
                \ files_to_exclude
                     | file3
                     \ file4

Então, se você emitir o comando

rsync -avr -e ssh user@host:/home/path/to/copy \
                 /home/user/www --exclude='files_to_exclude/*'

Você receberá a seguinte estrutura na cópia

 /home/user/www
             | files_to_copy
                  | file1
                  \ file2
             \ files_to_exclude

Se você não quiser ter o diretório files_to_exclude na cópia, use o seguinte comando:

rsync -avr -e ssh user@host:/home/path/to/copy \
                 /home/user/www --exclude='files_to_exclude'
    
por 07.06.2012 / 14:43
0

Nós usamos algo semelhante a isso

filename='date +%F'_backup
rsync --verbose --log-file=/backup_logs/"$filename" --progress --stats --compress --rsh=/usr/bin/ssh --recursive --times --perms --links --delete --exclude '*.zip' user@remoteMachine:/data/documents/ /local/data/documents/
    
por 07.06.2012 / 13:38