Articles

Come usare il comando rsync per copiare i file su Ubuntu

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

In questo articolo, ho intenzione di mostrare come utilizzare il comando rsync per copiare file e directory e prendere 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 non è installato sul tuo computer per qualche motivo, si può facilmente installare il pacchetto ufficiale repository di Ubuntu con il comando seguente:

$ sudo apt install rsync -y

Formato del Comando rsync:

Il formato di base del comando rsync è,

options opzioni rsync destinazione sorgente

  • la sorgente può essere un file o una directory o un percorso di rete.
  • la destinazione può essere una directory o un percorso di rete.
  • rsync ha molte opzioni. È possibile modificare il comportamento di rsync utilizzando queste opzioni. Daremo un’occhiata ad alcune delle opzioni più comuni lungo la strada.

Quando si utilizza rsync, è necessario conoscere le seguenti cose:

  • Se metti un/ dopo il nome della directory nel sorgente di rsync come myfiles/, significa copiare tutti i file dall’interno della directory solo nella destinazione.
  • Se non si inserisce un / dopo il nome della directory nell’origine di rsync come myfiles, rsync copierà tutti i file dalla directory alla destinazione inclusa la directory.
  • Se si digita un percorso di directory di destinazione che non esiste, rsync lo creerà automaticamente come richiesto.

Backup di file e directory locali con rsync:

È possibile copiare i file da una directory a un’altra directory sul computer molto rapidamente con rsync.

Ad esempio, diciamo che hai alcuni file importanti nella directory ~/Downloads. Ora, si desidera eseguire il backup di tutti i file dalla directory ~ / Downloads alla chiavetta USB / dev / sdb1 montata nella directory / mnt / myusb.

Creiamo alcuni file fittizi nella directory ~ / Downloads.

touch toccare ~ / Downloads / test{1..100}

Ora, copiare tutti i file dalla cartella ~/Downloads directory /mnt/myusb directory con il seguente comando rsync:

$ rsync -avzh ~/Downloads/ /mnt/myusb

I file devono essere copiati.

Come puoi vedere, i file si trovano nella directory/mnt / myusb.

È anche possibile copiare l’intera ~/Downloads directory USB thumb drive come segue:

$ rsync -avzh ~/Downloads /mnt/myusb

Come si può vedere, l’intera directory copiati sull’unità flash USB.

di Nuovo, se si desidera copiare tutti i file dalla cartella ~/Downloads directory in un’altra directory (diciamo mydownloads/) sulla vostra chiavetta USB, eseguire rsync come segue:

$ rsync -avzh ~/Downloads/ /mnt/myusb/mydownloads

Come si può vedere, il modo corretto i file copiati su chiavetta USB.

Backup di file e directory remoti con rsync:

Con rsync, è possibile copiare file e directory da un server remoto al filesystem locale o alla chiavetta USB per scopi di backup. È inoltre possibile copiare file e directory dal filesystem locale al server di backup remoto. rsync utilizza SSH per copiare file e directory da / per server remoto.

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

Ad esempio, diciamo che vuoi copiare tutti i contenuti (inclusa la directory) della directory /www dal tuo server remoto www.example1.com alla tua chiavetta USB montata sul path / mnt / myusb sul tuo filesystem locale.

Per fare ciò, è possibile utilizzare il seguente comando rsync:

rs rsync-avzh [email protected]:/www /mnt/myusb

NOTA: Qui, root è il nome utente remoto, www.example1.com è il nome DNS del server remoto e / www è un percorso di directory sul server remoto. È inoltre possibile utilizzare l’indirizzo IP del server remoto invece di nome DNS, se si desidera.

È possibile visualizzare il seguente messaggio se ci si connette al server remoto per la prima volta. Basta digitare sì e quindi premere <Immettere>.

Ora, digitare la password per l’utente remoto (nel mio caso è root) e premere <Invio>.

Tutti i file e le directory all’interno della directory /www inclusa la directory / www devono essere copiati sulla chiavetta USB come puoi vedere nello screenshot qui sotto.

È anche possibile copiare i file dal file system locale al server remoto con rsync.

Nell’esempio precedente, è stato eseguito un backup della directory /www sul server remoto. Ora, diciamo, alcuni dei file nel server remoto è danneggiato e si desidera recuperarli dal backup.

Per farlo, eseguire il comando rsync come segue:

rs rsync-avzh /mnt/myusb/www/ [email protected]:/www

Ora, digitare la password del server remoto e premere <Invio>.

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

Esecuzione di backup incrementali con rsync:

In questo tipo di backup, le directory di origine e di destinazione sono mantenute sincronizzate. Se un file viene aggiunto alla directory di origine, viene aggiunto anche alla directory di destinazione. Allo stesso modo, se viene rimosso qualsiasi file o directory dalla directory di origine, viene rimosso anche dalla directory di destinazione.

rsync è un ottimo strumento per prendere il backup incrementale.

Diciamo che hai una directory ~/cloud nella directory HOME dell’utente. Ora, si desidera eseguire il backup incrementale della directory su un’unità USB montata sul percorso / mnt / usb1 su un server remoto backup.example.com.

NOTA: È necessario disporre di pacchetti openssh-server e rsync installati sul server remoto per funzionare.

prendere il backup incrementale dei la ~/cloud, eseguire il seguente comando:

$ rsync -avzh –delete –progress ~/cloud/ [email protected]:/mnt/usb1/backup

Ora, digitare la password per il tuo utente remoto e premere <Invio>.

Il contenuto della directory ~ / cloud deve essere copiato sulla chiavetta USB sul server remoto.

Come si può 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 rm ~/cloud / packages.txt

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

$ rsync -avzh –delete –progress ~/cloud/ [email protected]:/mnt/usb1/backup

Come si può vedere, il file packages.txt viene anche rimosso 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 ha una descrizione dettagliata di tutte le opzioni di rsync. Consiglio vivamente di controllare che fuori.

È possibile accedere la pagina di man di rsync con il seguente comando:

$ man rsync

Così, ecco come usare rsync per copiare i file e prendere il backup incrementali su Ubuntu. Grazie per aver letto questo articolo.