De acordo com o man rsync, você pode usar:
--exclude=PATTERN
Ou a sua lista é muito grande, você pode usar:
--exclude-from=FILE
Estou tendo dificuldade em descobrir exatamente como executar o rsync para que ele faça o que eu preciso. Basicamente, o que eu preciso é o seguinte, dada uma única pasta de origem com vários subdiretórios:
-Se arquivos para um determinado subdiretório forem alterados na pasta de origem, sincronize essas alterações com o destino (atualize os arquivos e exclua os arquivos não encontrados na pasta de origem por mais tempo).
-Se uma pasta for encontrada na origem, mas não no destino, sincronize a pasta e todo o seu conteúdo para o destino.
-Se uma pasta for encontrada no destino, mas não na origem, não faça nada (por exemplo, não a exclua).
Esta é a aparência da estrutura de diretórios:
Source Folder
Folder 1
File 1 unchanged.txt
Folder 2
File 2 newer.txt
Folder 3
File 3.txt
Destination Folder
Folder 1
File 1 unchanged.txt
Folder 2
File 2 old.txt (to be replaced with File 2 newer.txt)
(Folder 3 not yet in destination, to be added from source)
Folder X (not in source, to be left untouched)
De acordo com o man rsync, você pode usar:
--exclude=PATTERN
Ou a sua lista é muito grande, você pode usar:
--exclude-from=FILE
O que você descreve é o comportamento padrão padrão do rsync.
Se você quisesse um comportamento diferente, teria que usar uma das opções --delete
.
Este é um teste que prova o meu ponto:
$ mkdir tmp1
$ mkdir tmp2
$ mkdir tmp1/1
$ mkdir tmp1/2
$ mkdir tmp2/1
$ mkdir tmp2/X
$ touch tmp1/1/1.txt
$ touch tmp1/2/2.txt
$ rsync -avz tmp1 tmp2
sending incremental file list
tmp1/
tmp1/1/
tmp1/1/1.txt
tmp1/2/
tmp1/2/2.txt
sent 208 bytes received 62 bytes 540.00 bytes/sec
total size is 0 speedup is 0.00
$ ls tmp2
1 tmp1 X
Você pode ver que o diretório X está lá, intocado.
Se você estiver usando isso como um daemon, talvez seu rsync
esteja aplicando opções de um arquivo de configuração.
Veja /etc/rsyncd.conf
para ver se alguma opção de exclusão está definida ou em rsyncd.conf
no diretório inicial do usuário que está iniciando o rsync
Espero que ajude.
Tags rsync