Rsync consente di sincronizzare i file in entrambi i modi?


25

Ho eseguito il backup di un server Web Linux usando rsync con cygwin. Ora ho una copia perfetta del server sul mio laptop Windows. Se elimino o modifico un file sul mio computer portatile ed eseguo di nuovo rsync con cygwin, eliminerà / aggiornerà lo stesso file sul server? Ho l'impressione che se elimino / modifico sul server ed eseguo rsync sul mio laptop, questo cancellerà / modificherà il file locale sul mio laptop ma questo funziona al contrario?


12
Questa non è una risposta alla tua domanda, ma dovresti dare un'occhiata unison. È uno strumento di sincronizzazione che salva lo stato del file su entrambe le copie e consente quindi la sincronizzazione bidirezionale. C'è anche un pacchetto cygwin.
— Dubu,

Risposte:


29

Rsync esegue una sincronizzazione unidirezionale, tuttavia spetta a te decidere in che direzione va la sincronizzazione.

La sintassi del comando Rsync è la seguente:

rsync [OPTION...] SRC... [DEST]

Si noti che si specifica la sincronizzazione dall'origine alla destinazione. L'origine e la destinazione possono essere qualsiasi percorso locale o remoto.

Ad esempio, se vuoi copiare i file dal tuo server sul tuo laptop, fai:

rsync [OPTION...] <server-path> <laptop-path>

Per sincronizzare nella direzione opposta, fai:

rsync [OPTION...] <laptop-path> <server-path>

Quindi, per rispondere alla tua domanda: dipende da come esegui rsync.

Se si desidera eliminare i file sulla destinazione, è necessario utilizzare l' --deleteopzione. Ma fai attenzione, perché se commetti un errore quando specifichi la tua fonte, finirai per rimuovere tutto sulla destinazione. È più sicuro testare prima la sincronizzazione senza --deleteopzione e una volta che sei soddisfatto di come funziona puoi aggiungere --deleteun'opzione.

Come suggerito da Masegaloeh nei commenti seguenti, -no l' --dry-runopzione può anche essere usata per testare il rsynccomportamento del comando.


9
Nota aggiuntiva: per testare il comportamento rsync, è possibile utilizzare il parametro -no --dry-run, quindi si saprà quale file verrà eliminato e modificato
— masegaloeh,

1

Uno strumento wrapper scritto in python3 chiamato bsyncquale wrapping finde rsynccomando semplifica l'attività. Repository Github: https://github.com/dooblem/bsync

Non aver paura quando è su github (cioè in un modo in cui pensi di essere un programmatore per usare lo strumento).


-1

considera l'utilizzo di --delete-after e non --delete, questo assicurerà che la tua parte ricevente eliminerà i file dopo il trasferimento, non prima.


Suppongo che i downvotes siano dovuti al fatto che l'OP non sta cercando di rsynceliminare nulla. Sta eliminando le cose da solo. Detto questo, utile suggerimento per la sincronizzazione in generale. Grazie.
— Harperville,
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.