O que exatamente --delete-exclusão fará pelo rsync?

32

Eu uso o rsync com muito prazer para fazer backup dos meus servidores, embora eu tenha uma pergunta sobre o --delete-excludedparâmetro.

/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded     --rsh=/usr/bin/ssh root@server01:/etc /.snapshot/hourly.0/server01

De man rsync:

 --delete-excluded       also delete excluded files from dest dirs

Para mim, não nativo em inglês, isso significa que o rsync excluirá os diretórios excluídos do diretório de destino real no servidor remoto; portanto, se eu tiver /home/backupe /home/settingsem minhas pastas de exclusão, essas pastas serão realmente removidas do servidor remoto .

De vários outros recursos, parece que ele excluirá os arquivos da pasta de backup local para economizar espaço. Por exemplo, você pode criar pequenos backups no próprio servidor e excluir esses dados, para não perder espaço de armazenamento.

É vital para mim, embora o rsync faça seu trabalho apenas de uma maneira, pois as pessoas dizem que deve funcionar, não quero correr o risco de ter um software que exclua arquivos / diretórios no servidor remoto.

ujjain
fonte

Respostas:

37

Sua interpretação está correta. Se você excluiu arquivos ou diretórios da transferência, --delete-deleted os removerá do lado do destino (esse não precisa ser o "servidor remoto", você pode usar rsyncpara copiar de um servidor para o computador local) se encontra-os lá. Por exemplo, se você usar --exclude=*.o --delete-excluded, se o rsync encontrar algum arquivo que termine em .o no lado do destino, ele será removido se eles existirem no diretório de origem ou não.

DerfK
fonte
11
Portanto, ele removerá os diretórios / arquivos de /.snapshot/hourly.0/server01 e não o servidor remoto?
Ujjain
3
@chronoz Se você estiver copiando do servidor remoto para o computador local, o destino é o computador local. Se você estiver copiando do computador local para o servidor remoto, o destino é o servidor remoto. O destino é o que é importante aqui. Se o destino for o servidor remoto, ele removerá os arquivos do servidor remoto.
DerfK 12/06
Confirmação aqui: comentum.com/rsync.html
SDsolar 23/08
11
Descobri recentemente que "--delete-exclusão" é completamente equivalente a "--delete --delete-exclusão". No exemplo de resposta fornecido acima, os arquivos remotos que não estão presentes no lado da fonte também serão excluídos.
Wayne