Cosa farà esattamente --delete-excluded per rsync?


32

Uso rsync con grande piacere per il backup dei miei server, anche se ho una domanda sul --delete-excludedparametro.

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

Da man rsync:

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

Per me, un nativo non inglese, questo significa che rsync cancellerà directory escluse dalla directory di destinazione reale sul server remoto, quindi se ho /home/backupe /home/settingsnei miei escludere-cartelle, le cartelle sarebbe in realtà rimosso dal server remoto ,.

Da diverse altre risorse sembra che eliminerà i file dalla cartella di backup locale per risparmiare spazio. Ad esempio, è possibile creare piccoli backup sul server stesso ed escludere questi dati, in modo da non sprecare spazio di archiviazione.

È fondamentale per me, anche se rsync farà il suo lavoro solo a senso unico, dato che la gente dice che dovrebbe funzionare, non voglio correre alcun rischio nell'avere un software che cancella file / directory sul server remoto.

Risposte:


37

La tua interpretazione è corretta. Se i file o le directory esclusi sono stati trasferiti, --delete-excluded li rimuoverà dal lato di destinazione (questo non deve essere il "server remoto", è possibile utilizzare rsyncper copiare da un server al computer locale) se li trova lì. Ad esempio, se lo usi --exclude=*.o --delete-excluded, se rsync trova dei file che terminano con .o sul lato di destinazione, li rimuoverà indipendentemente dal fatto che esistano nella directory di origine o meno.


1
Quindi rimuoverà le directory / i file da /.snapshot/hourly.0/server01 e non dal server remoto?
ujjain,

3
@chronoz Se si sta copiando dal server remoto al computer locale, la destinazione è il computer locale. Se si sta copiando dal computer locale al server remoto, la destinazione è il server remoto. La destinazione è ciò che è importante qui. Se la destinazione è il server remoto, rimuoverà i file dal server remoto.
DerfK,


1
Di recente ho scoperto che "--delete-excluded" è completamente equivalente a "--delete --delete-excluded". Nell'esempio di risposta fornito sopra, verranno eliminati anche i file remoti che non sono presenti sul lato sorgente.
Wayne,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.