Introduzione
Rsync sta per "Sincronizzazione remota". Il rsync
comando consente di trasferire e sincronizzare i dati tra diverse macchine e directory. Utilizzando il protocollo Secure Shell (SSH), puoi copiare i tuoi file in modo sicuro in un'altra posizione.
Lo strumento rsync ha molti vantaggi rispetto ad altri metodi per copiare i file. Utilizza sia la compressione che la decompressione durante l'invio e la ricezione di file. Lo strumento trasferisce solo file nuovi o aggiornati risparmiando sulla larghezza di banda e portando tempi di trasferimento più rapidi.
Segui questa guida per scoprire come utilizzare rsync su SSH per trasferire o copiare file.
Prerequisiti
- Utente con sudo o root privilegi
- Accesso SSH a un server tramite riga di comando/finestra del terminale
- Rsync installato sul computer locale e di destinazione
Verifica installazione Rsync
Le distribuzioni Linux più recenti hanno rsync per impostazione predefinita. Per verificare che sul tuo sistema sia installato rsync, esegui il comando di installazione.
Per Debian e Ubuntu macchine, usa apt-get
:
sudo apt-get install rsync
Se rsync è già installato, l'output mostra la versione corrente dello strumento.
Su basato su RPM macchine, come CentOS, usano:
sudo yum install rsync
Trasferisci file con Rsync su SSH
Prima di poter iniziare a trasferire file e directory con rsync su SSH, assicurati di poter utilizzare SSH per connetterti a un server remoto. Una volta verificato, puoi iniziare a eseguire il backup dei tuoi dati. Assicurati che il tuo sistema di destinazione abbia spazio di archiviazione sufficiente.
La sintassi per copiare i file su un server remoto tramite SSH con rsync
il comando è:
rsync OPTION SourceDirectory_or_filePath [email protected]_or_name:Target
Esempi di comando rsync
Segui il resto della guida per vedere gli esempi dei casi d'uso di rsync più comuni .
Trasferisci un file specifico con Rsync
Per trasferire un singolo file su una macchina remota, immettere il percorso completo del file di origine. Ad esempio:
rsync ~/Dir1/source.pdf [email protected]:~/Desktop/test
Assicurati di utilizzare le virgolette per i file che contengono spazi nel nome. Ad esempio:
rsync ~/Desktop/Dir1/"source pdf sample.pdf" [email protected]:~/Desktop/test
Trasferisci i contenuti di una directory con Rsync
Ci sono alcune opzioni durante la sincronizzazione dei contenuti della directory con rsync su SSH.
Per trasferire tutti i file da una directory di origine alla destinazione su un host remoto, inserisci:
rsync ~/SourceDirectory/* [email protected]:~/Destination
L'asterisco (*) indica allo strumento di includere tutti i file nella directory di origine. Le sottodirectory non trasferito .
Ad esempio:
L'output mostra le directory che rsync ha saltato durante il trasferimento.
Per includere tutte le sottodirectory dalla directory di origine, utilizza il -r
(ricorsivo) o -a
(archivio) opzione. Il -a
flag è ciò che consigliamo. Questa opzione esegue la sincronizzazione ricorsiva e mantiene tutte le autorizzazioni e le impostazioni dei file. Questa volta non utilizzare l'asterisco nel percorso di origine.
rsync -a ~/Desktop/Dir1/ [email protected]:~/Desktop/test
Quando esegui il comando in questo formato, rsync trasferisce tutti i file e le sottodirectory dalla directory di origine al percorso di destinazione. Dal nostro esempio sopra, il test avrà il contenuto della Dir1 fonte al termine del trasferimento.
Per evitare che i file vengano copiati, consulta la nostra guida su come escludere file e directory nel trasferimento dei dati utilizzando il comando rsync.
Verifica avanzamento trasferimento file Rsync
Per controllare lo stato dei trasferimenti rsync, utilizza il -P
opzione. Questa opzione mostra i tempi di trasferimento, nonché i nomi dei file e delle directory sincronizzati.
Se si verifica un problema con la tua connessione e la sincronizzazione viene interrotta, -P
riprende i tuoi trasferimenti.
Esegui il comando in questo formato per sincronizzare ricorsivamente e controllare lo stato del trasferimento:
rsync -aP ~/SourceDirectory/ [email protected]:~/Destination
Ad esempio:
Se esegui nuovamente lo stesso comando quando non sono state apportate modifiche alla directory di origine, il trasferimento non viene eseguito. Il motivo è che rsync trasferisce solo le modifiche ai file e ai nuovi file. In questo caso, l'output mostra solo la seguente riga:
Quando c'è una modifica anche in un file di origine, rsync la rileva e la sincronizza con la destinazione.
Abbiamo apportato una modifica in un file ed eseguito nuovamente lo stesso comando:
L'output mostra il campione sorgente2 il file è stato trasferito poiché rsync ha rilevato che il file è stato modificato.