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.

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.


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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.