Come usare il comando rsync per copiare file su Ubuntu

How Use Rsync Command Copy Files Ubuntu

rsync è uno strumento per copiare file. rsync è usato per copiare file dal tuo computer a un computer remoto, da un computer remoto al tuo computer, da una directory a un'altra directory sullo stesso computer, dal tuo computer a un disco rigido esterno o condivisione di rete ecc. rsync può anche essere utilizzato per eseguire backup incrementali.

In questo articolo, ti mostrerò come utilizzare il comando rsync per copiare file e directory ed eseguire il backup incrementale. Userò Ubuntu per la dimostrazione. Ma qualsiasi distribuzione Linux moderna dovrebbe funzionare bene. Quindi iniziamo.



Installazione di rsync:

rsync dovrebbe essere già installato su Ubuntu. Ma, se per qualche motivo non è installato sul tuo computer, puoi installarlo facilmente dal repository ufficiale dei pacchetti di Ubuntu con il seguente comando:



$sudoadattoinstallarersync-e



Formato del comando rsync:

Il formato di base del comando rsync è,

$opzioni di sincronizzazionefontedestinazione
  • fonte può essere un file o una directory o un percorso di rete.
  • destinazione può essere una directory o un percorso di rete.
  • rsync ha molte opzioni. Puoi modificare il comportamento di rsync usando queste opzioni. Daremo un'occhiata ad alcune delle opzioni più comuni lungo il percorso.

Quando usi rsync, devi sapere le seguenti cose:

  • Se metti un / dopo il nome della directory in fonte di rsync come i miei file/ , quindi significa copiare tutti i file dall'interno della directory solo nel destinazione .
  • Se non metti a / dopo il nome della directory in fonte di rsync come i miei file , quindi rsync copierà tutti i file dalla directory al destinazione compresa la rubrica.
  • Se digiti a destinazione percorso della directory che non esiste, rsync lo creerà automaticamente come richiesto.

Backup di file e directory locali con rsync:

Puoi copiare file da una directory a un'altra directory sul tuo computer molto rapidamente con rsync .



Ad esempio, supponiamo che tu abbia alcuni file importanti nel ~/Download directory. Ora vuoi eseguire il backup di tutti i file dal ~/Download directory sulla chiavetta USB /dev/sdb1 montato nella directory / mnt / myusb .

Creiamo dei file fittizi nel ~/Download directory.

$tocco~/Download/test{1..100}

Ora copia tutti i file dal ~/Download directory per / mnt / myusb directory con il seguente comando rsync:

$rsync-avzh~/Download/ /mnt/miousb

I file dovrebbero essere copiati.

Come puoi vedere, i file sono in / mnt / myusb directory.

Puoi anche copiare l'intero ~/Download directory sulla chiavetta USB come segue:

$rsync-avzh~/Download/mnt/miousb

Come puoi vedere, l'intera directory viene copiata sulla chiavetta USB.

Ancora una volta, se volessi copiare tutti i file dal ~/Download directory in un'altra directory (diciamo i miei download/) sulla tua chiavetta USB, esegui rsync come segue:

$rsync-avzh~/Download/ /mnt/miousb/i miei download

Come puoi vedere, i file vengono copiati correttamente sulla chiavetta USB.

Backup di file e directory remoti con rsync:

Con rsync, puoi copiare file e directory da un server remoto al tuo filesystem locale o chiavetta USB per scopi di backup. Puoi anche copiare file e directory dal tuo filesystem locale al tuo server di backup remoto. rsync usa SSH per copiare file e directory da/verso un server remoto.

È necessario disporre del pacchetto server SSH ( openssh-server su Ubuntu) e rsync pacchetto installato sul server remoto se si desidera utilizzare rsync per scopi di backup dei file.

Ad esempio, supponiamo di voler copiare tutti i contenuti (inclusa la directory) del /www directory dal tuo server remoto www.esempio1.com alla tua chiavetta USB montata sul percorso / mnt / myusb sul tuo filesystem locale.

Per farlo, puoi usare il seguente comando rsync:

$rsync-avzhradice@www.esempio1.com:/www/mnt/miousb

NOTA: Qui, radice è il nome utente remoto, www.esempio1.com è il nome DNS del server remoto e /www è un percorso di directory sul server remoto. Se lo desideri, puoi anche utilizzare l'indirizzo IP del server remoto invece del nome DNS.

Potresti visualizzare il seguente messaggio se ti stai connettendo al server remoto per la prima volta. Basta digitare e poi premere .

Ora digita la password per l'utente remoto (nel mio caso è radice ) e premere .

Tutti i file e le directory all'interno del /www directory inclusa la directory /www dovrebbe essere copiato sulla chiavetta USB come puoi vedere nello screenshot qui sotto.

Puoi anche copiare file dal tuo file system locale al tuo server remoto con rsync.

Nell'esempio precedente, hai eseguito un backup del /www directory sul server remoto. Ora, diciamo, alcuni file nel server remoto sono danneggiati e vuoi recuperarli dal backup.

Per farlo, esegui il comando rsync come segue:

$rsync-avzh /mnt/miousb/www/radice@www.esempio1.com:/www

Ora digita la password del tuo server remoto e premi .

I file devono essere copiati dal file system locale al server remoto.

Esecuzione di backup incrementali con rsync:

In questo tipo di backup, il fonte e destinazione le directory sono mantenute sincronizzate. Se viene aggiunto un file al fonte directory, viene aggiunto a destinazione anche la directory. Allo stesso modo, se qualsiasi file o directory dal fonte la directory viene rimossa, viene rimossa dal destinazione anche la directory.

rsync è un ottimo strumento per eseguire il backup incrementale.

Diciamo che hai una directory ~/nuvola nel tuo utente CASA directory. Ora, vuoi eseguire il backup incrementale della directory su una chiavetta USB montata sul percorso /mnt/usb1 su un server remoto backup.esempio.com .

NOTA: Tu devi avere openssh-server e rsync pacchetti installati sul server remoto affinché funzioni.

Per eseguire il backup incrementale del ~/nuvola , esegui il seguente comando:

$rsync-avzh --Elimina --progresso~/nube/shovon@backup.esempio.com:/mnt/usb1/backup

Ora digita la password per il tuo utente remoto e premi .

Il contenuto del ~/nuvola la directory deve essere copiata sulla chiavetta USB sul server remoto.

Come puoi vedere, tutti i file vengono copiati sulla chiavetta USB montata sul server di backup remoto.

Ora, rimuoviamo un file dal file system locale e vediamo cosa succede.

$rm~/nube/packages.txt

Ora usa rsync per sincronizzare di nuovo le directory con lo stesso comando di prima.

$rsync-avzh --Elimina --progresso~/nube/shovon@backup.esempio.com:/mnt/usb1/backup

Come puoi vedere, il file packages.txt viene rimosso anche dalla chiavetta USB montata sul server di backup remoto.

Dove andare dopo:

Puoi trovare maggiori informazioni su rsync nella pagina man di rsync. La pagina man di rsync contiene una descrizione dettagliata di tutte le opzioni di rsync. Ti consiglio vivamente di dare un'occhiata.

Puoi accedere alla pagina man di rsync con il seguente comando:

$uomorsync

Quindi, è così che usi rsync per copiare file e fare backup incrementali su Ubuntu. Grazie per aver letto questo articolo.