androide

Come utilizzare rsync per il trasferimento e la sincronizzazione dei dati locali e remoti

OpenMediaVault (OMV) su Raspberry Pi ⋆ NAS economico a casa

OpenMediaVault (OMV) su Raspberry Pi ⋆ NAS economico a casa

Sommario:

Anonim

Rsync è un'utilità da riga di comando rapida e versatile che sincronizza file e cartelle tra due posizioni su una shell remota o da / a un demone Rsync remoto. Fornisce un rapido trasferimento incrementale dei file trasferendo solo le differenze tra l'origine e la destinazione.

Rsync può essere utilizzato per il mirroring di dati, backup incrementali, copia di file tra sistemi e in sostituzione dei comandi scp , sftp e cp per l'uso quotidiano.

In questo tutorial, ti mostreremo come utilizzare rsync attraverso esempi pratici e spiegazioni dettagliate delle opzioni rsync più comuni.

Installazione di Rsync

L'utility rsync è preinstallata sulla maggior parte delle distribuzioni Linux e macOS. Puoi verificare se è installato sul tuo sistema digitando:

rsync --version

rsync version 3.1.2 protocol version 31

Installa Rsync su Ubuntu e Debian

sudo apt install rsync

Installa Rsync su CentOS e Fedora

sudo yum install rsync

Sintassi del comando Rsync

Prima di andare su come utilizzare il comando rsync , iniziamo esaminando la sintassi di base.

Le espressioni dell'utilità rsync assumono la seguente forma:

Local to Local: rsync…… DEST Local to Remote: rsync…… HOST:DEST Remote to Local: rsync… HOST:SRC…

  • OPTION - Le opzioni rsync. SRC - Directory di origine. DEST - Directory di destinazione. USER - Nome utente remoto. HOST - Nome host remoto o indirizzo IP.

rsync fornisce una serie di opzioni che controllano ogni aspetto del suo comportamento. Le opzioni più utilizzate sono:

  • -a , --archive , modalità archivio, equivalente a -rlptgoD . Questa opzione dice a rsync di sincronizzare ricorsivamente le directory, trasferire dispositivi speciali e bloccare, conservare collegamenti simbolici, tempi di modifica, gruppo, proprietà e permessi. -z , --compress . Questa opzione forza rsync a comprimere i dati mentre vengono inviati al computer di destinazione. Utilizzare questa opzione solo se la connessione al computer remoto è lenta. -P , equivalente a --partial --progress . Quando viene utilizzata questa opzione, rsync mostrerà una barra di avanzamento durante il trasferimento e manterrà i file parzialmente trasferiti. È utile quando si trasferiscono file di grandi dimensioni su connessioni di rete lente o instabili. --delete . Quando si utilizza questa opzione, rsync eliminerà i file estranei dalla posizione di destinazione. È utile per il mirroring. -q , --quiet . Utilizzare questa opzione se si desidera eliminare i messaggi non di errore. -e . Questa opzione ti consente di scegliere una shell remota diversa. Per impostazione predefinita, rsync è configurato per usare ssh.

Utilizzo di base di Rsync

Per copiare un singolo file da uno a un altro percorso locale è necessario eseguire il comando seguente:

rsync -a /opt/filename.zip /tmp/

L'utente che esegue il comando deve disporre delle autorizzazioni di lettura sulla posizione di destinazione e delle autorizzazioni di scrittura sulla destinazione.

Se si omette il nome file dalla posizione di destinazione, il file viene copiato con il nome corrente. Se si desidera salvare il file con un nome diverso, specificare il nuovo nome nella parte di destinazione:

rsync -a /opt/filename.zip /tmp/newfilename.zip

Nell'esempio seguente stiamo creando un backup locale dei file del nostro sito Web:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Se la directory di destinazione non esiste, rsync la creerà.

Vale la pena ricordare che rsync offre un trattamento diverso alle directory dei sorgenti con una barra finale / . Se aggiungi una barra finale nella directory di origine, copierà solo il contenuto della directory nella directory di destinazione. Quando la barra finale viene omessa, rsync copia la directory di origine all'interno della directory di destinazione.

Come utilizzare Rsync per sincronizzare i dati da / verso una macchina remota

Quando si utilizza rsync per il trasferimento remoto, deve essere installato sia sul computer di origine che su quello di destinazione. Le nuove versioni di rsync sono configurate per utilizzare SSH come shell remota predefinita.

Nel seguente esempio, stiamo trasferendo una directory da un computer locale a un computer remoto:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/ Se non hai impostato un accesso SSH senza password al computer remoto, ti verrà chiesto di inserire la password dell'utente.

Se si desidera trasferire i dati da un telecomando a un computer locale, è necessario utilizzare la posizione remota come sorgente:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Se SSH sull'host remoto è in ascolto su una porta diversa dalla 22 predefinita, è possibile specificare la porta utilizzando l'opzione -e :

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Quando si trasferiscono grandi quantità di dati, si consiglia di eseguire il comando rsync all'interno di una sessione dello schermo o utilizzare l'opzione -P :

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Escludi file e directory

Quando si escludono file o directory, è necessario utilizzare i percorsi relativi alla posizione di origine.

Esistono due opzioni per escludere file e directory. La prima opzione è usare l'argomento --exclude e specificare i file e le directory che si desidera escludere dalla riga di comando.

Nel seguente esempio, stiamo escludendo le tmp node_modules e tmp che si trovano all'interno della src_directory :

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

La seconda opzione è usare l'argomento --exclude-from e specificare i file e le directory che si desidera escludere in un file.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/ /exclude-file.txt

node_modules tmp

Conclusione

In questo tutorial, hai imparato come usare Rsync per copiare e sincronizzare file e directory. C'è molto altro da sapere su Rsync nella pagina del Manuale dell'utente di Rsync.

Sentiti libero di lasciare un commento in caso di domande.

terminale rsync