GNU/Linux >> Linux Esercitazione >  >> Debian

Come utilizzare il comando rsync per copiare i dati localmente e su SSH

La copia di file da una posizione all'altra è un'attività piuttosto semplice e può essere facilmente eseguita utilizzando il comando cp. Tuttavia, a volte, devi fare un po' di più. È qui che arriva il comando rsync soprattutto quando si trasferiscono file più grandi. Rsync (Remote Sync) è uno strumento da riga di comando basato su Linux che può essere utilizzato per sincronizzare e copiare file tra server locali e remoti. Consente la sincronizzazione di file tra due directory sullo stesso computer, tra le directory di due computer diversi sulla stessa rete, tra due directory sul sistema remoto.

Il principale vantaggio di rsync è che invece di copiare alla cieca l'intero contenuto, analizza e trasferisce solo le differenze tra la sorgente e la destinazione, risparmiando possibilmente le risorse di sistema e la larghezza di banda. Alcuni altri vantaggi di rsync sono i seguenti:

  • Comprime i file prima del trasferimento
  • Può visualizzare la barra di avanzamento durante il trasferimento dei dati
  • Il processo di copia può essere sospeso e ripreso in seguito
  • Consente il trasferimento tramite connessione SSH

In questo articolo spiegheremo come usare rsync per copiare i dati in Linux. Useremo Debian 10 per descrivere la procedura menzionata in questo articolo.

Installazione di Rsync

Rsync è installato nella maggior parte dei sistemi operativi Linux per impostazione predefinita. Tuttavia, se non è installato, puoi installarlo seguendo i passaggi seguenti:

Avvia l'applicazione Terminale nel tuo sistema accedendo alle Attività scheda nell'angolo in alto a sinistra del desktop Debian. Quindi nella barra di ricerca, digita terminale . Quando viene visualizzata l'icona Terminale, fai clic su di essa per avviarla.

Ora esegui il comando seguente in Terminale per installare l'utilità rsync:

$ apt install rsync

Utilizzo di Rsync

Ogni comando rsync inizia con rsync seguito da un'opzione in cui è possibile specificare vari parametri. Rsync fornisce una serie di opzioni che ti danno il controllo per modellare le specifiche di trasferimento. Poi c'è un'origine e una destinazione che dipende dal fatto che si tratti di una macchina remota o locale.

La sintassi di base di rsync è:

$ rsync [option] [source] [destination]

Alcune delle opzioni generali utilizzate con i comandi rsync:

  1. -v :prolisso
  2. -a :modalità archivio, consente di copiare file in modo ricorsivo e conserva collegamenti simbolici, permessi file, proprietà di utenti e gruppi e timestamp
  3. -z :comprime i dati
  4. -h :leggibile dall'uomo, genera numeri in un formato leggibile dall'uomo
  5. –max-size= DIMENSIONE, trasferisci i file con la DIMENSIONE minima specificata
  6. –dimensione minima= DIMENSIONE, trasferisci file con la DIMENSIONE massima specificata

Ora spiegheremo alcuni esempi di utilizzo di rsync con queste opzioni.

Copia file e directory sul server locale

Copia file in locale

È possibile copiare uno o più file da una directory di origine alla directory di destinazione sulla stessa macchina. L'esempio sarebbe copiare tutti i .jpg file da ~/Download nella directory ~/Documents directory utilizzando il seguente comando:

$ rsync -zvh /home/tin/Downloads/*.jpg /home/tin/Documents

Dopo aver eseguito il comando precedente, tutti i .jpg file nella directory di origine /home/tin/Downloads verrà copiato nella directory di destinazione /home/tin/Documents .

Nell'esempio sopra, abbiamo usato opzioni come -z per la compressione, -v per output dettagliato e -h per output leggibile.

Copia le directory in locale

Simile ai file, puoi anche copiare l'intera cartella e i file contenuti in una directory usando il comando rsync. Un esempio potrebbe essere copiare tutti i file da ~/Downloads nella directory ~/Documents directory utilizzando il seguente comando:

$ rsync -zavh /home/tin/Downloads/ /home/tin/Documents

Copia file su un server remoto

È possibile copiare uno o più file da una directory di origine a una directory di destinazione su una macchina remota. Ad esempio, per copiare i file da un computer locale a un computer remoto, utilizzare la seguente sintassi dei comandi:

$ rsync [options] [local path] [user]@[remote server]:[remote path]

Copia di file in base alla dimensione massima

È inoltre possibile specificare la dimensione massima del file che può essere copiato dall'origine alla destinazione utilizzando rsync. Per farlo, usa la seguente sintassi dei comandi:

$ rsync --max-size=”” [source] [destination]

Un esempio potrebbe essere copiare file con una dimensione massima di 4000K dalla fonte ~/Download alla destinazione ~/Documenti directory. In questo caso, i file di dimensioni superiori a 4000k non verranno copiati nella destinazione.

$ rsync --max-size=4000k /home/tin/Downloads/*.iso /home/tin/Documents/

Copiare i file in base alla dimensione minima

Allo stesso modo, puoi anche specificare la dimensione minima che può essere copiata dall'origine alla destinazione utilizzando rsync. Per farlo, usa la seguente sintassi dei comandi:

$ rsync --min-size=”” [source] [destination]

Un esempio potrebbe essere copiare file con una dimensione massima di 2 M dalla fonte ~/Download alla destinazione ~/Documenti directory. I file con dimensioni inferiori a 2 M non verranno copiati utilizzando rsync.

$ rsync --min-size=2M /home/tin/Downloads/*.iso /home/tin/Documents/

Visualizza i progressi

Puoi anche visualizzare i progressi durante la copia dei file utilizzando rsync. Aggiungi –progressi flag dopo il comando rsync come mostrato di seguito:

$ rsync --progress [source] [destination]

Un esempio potrebbe essere visualizzare lo stato di avanzamento durante la copia di un file dall'origine ~/Download alla destinazione ~/Documenti directory:

$ rsync --progress /home/tin/Downloads/VTS_03_1.VOB /home/tin/Documents

Escludi file

Puoi anche escludere determinati file durante la copia dei file dall'origine alla destinazione utilizzando rsync. Un esempio potrebbe essere l'esclusione di tutti i file .pdf durante la copia dei file dall'origine ~/Download alla destinazione ~/Documenti directory.

rsync -zavh --exclude="*.pdf" /home/tin/Downloads/ /home/tin/Documents

Immettendo il comando seguente, tutti i file verranno copiati dall'origine alla destinazione tranne .pdf file.

Questo è tutto ciò che c'è da fare! Abbiamo spiegato l'utilizzo di base dell'utilità rsync per la copia di file tra directory diverse in locale e in remoto. Abbiamo anche spiegato alcune opzioni di rync comuni e utili. Ci sono così tante opzioni oltre a queste che puoi usare per controllare ogni aspetto del comportamento di trasferimento. Per utilizzare queste opzioni, consulta le pagine man di rsync.


Debian
  1. Come scaricare e caricare file su SSH

  2. Il comando Linux rsync:come usarlo

  3. Come usare il comando Rsync in Linux?

  4. Come copiare file in Linux e Unix? 10 cp Esempi di comandi

  5. Utilizzare un dispositivo su SSH?

Come eseguire il backup di file e cartelle in Debian 10

Come installare e utilizzare Okteta per file di dati RAW in Linux

Come utilizzare Docker Cp per copiare file tra host e contenitori

Come utilizzare Rsync e SSH in una pipeline CI GitLab Dockerized

Come installare e utilizzare MongoDB su Debian 11

Come utilizzare Rsync per copiare/sincronizzare file tra server