Rsync, abbreviazione di sincronizzazione remota , è un comando Linux utilizzato per copiare e sincronizzare file, tra 2 sistemi Linux. Funziona in modo tale che eventuali modifiche aggiuntive apportate a un file o una directory vengano replicate su un altro sistema Linux.
Con il comando Linux rsync, puoi copiare e sincronizzare senza problemi i backup in locale e in remoto tra sistemi e server Linux. In questo articolo, esamineremo varie opzioni di comando che puoi utilizzare insieme al comando rsync.
Sintassi di base per il comando Linux rsync
La sintassi per rsync è brevemente riassunta di seguito.
$ rsync options source destination
Opzioni utilizzate con il comando rsync
- -z :comprime i dati.
- -v :Visualizza il processo in modalità dettagliata.
- -r :l'opzione copia i dati in modo ricorsivo (tuttavia, l'opzione non conserva i timestamp e i permessi sui file durante il trasferimento dei dati).
- -h :genera informazioni in un formato leggibile dall'uomo.
- -a :Ciò non solo consente la copia ricorsiva dei file, ma conserva anche i collegamenti simbolici, i timestamp, i permessi dei file, nonché le proprietà di utenti e gruppi.
Copia file e directory in locale
Puoi sincronizzare file localmente da una posizione all'altra in una macchina Linux usando l'esempio fornito di seguito.
$ rsync -zvh backup.tar /opt/backup_dir
Nell'esempio sopra, il tarball backup.tar
viene copiato e sincronizzato in /opt/backup_dir
directory.
Risultato di esempio
Per copiare una directory in locale da una posizione all'altra :
La sintassi sarà simile alla copia di file, solo che in questo caso utilizziamo il -a
flag per la copia ricorsiva.
Nell'esempio seguente, stiamo copiando e sincronizzando i deb_packages
directory nella /opt/backup_dir
directory.
$ rsync -azvh deb_packages /opt/backup_dir
Risultato di esempio
Copia/sincronizza file o directory da e verso un server remoto
Per copiare una directory su un server remoto, è necessario specificare il nome utente e l'indirizzo IP del server accanto alla cartella di destinazione.
Nell'esempio seguente, i deb_packages
la directory viene copiata su un server remoto con un IP 66.152.163.19
utilizzando le credenziali dell'utente root e salvate nella home directory principale.
$ rsync -avz deb_packages [email protected]:
Risultato di esempio
Per copiare e sincronizzare una directory da un server remoto su un PC locale :
Per copiare e sincronizzare file da un sistema remoto a un sistema Linux locale, utilizza l'esempio seguente
$ rsync -avzh [email protected]:documents /opt/backup_dir
Nell'esempio sopra, la directory documents
viene copiato in modo ricorsivo dal sistema remoto con un IP 66.152.163.19
al sistema locale nella /opt/backup_dir
directory.
Comando Rsync su SSH
Rsync può essere utilizzato insieme al protocollo SSH per proteggere o crittografare i file inviati da e verso un sistema Linux. questo assicura che nessuno possa intercettare i dati che stai trasferendo sulla rete.
Per copiare un file da un server locale a un server remoto utilizzando rsync su SSH:
In questo esempio useremo il -e
opzione con rsync per specificare un protocollo, in questo caso SSH.
$ rsync -avhze ssh backup.tar [email protected]:/backup_dir
Risultato di esempio
Per copiare un file da un server remoto a un sistema locale utilizzando rsync su SSH:
Proprio come nell'esempio precedente, il comando rsync viene utilizzato insieme a -e
opzione.
$ rsync -avzhe ssh [email protected]:/backup_dir /tmp/
Risultato di esempio
Visualizza l'avanzamento durante il trasferimento dei dati con il comando rsync
Se desideri visualizzare lo stato di avanzamento durante il trasferimento dei dati, utilizza il --progress
opzione. Viene visualizzato il file e il tempo stimato per il completamento del trasferimento dei dati.
Risultato di esempio
Comando Linux rsync con opzioni –include e –exclude
Queste opzioni sopra aiutano gli utenti a include
e exclude
file che potrebbero voler includere o escludere nel processo di sincronizzazione.
Nell'esempio seguente, il comando rsync includerà quei file in /var/lib
directory che inizia con 'p' ed esclude tutti gli altri file e directory.
$ rsync -avz --include 'p*' --exclude '*' /var/lib [email protected]:/opt/backup_dir
Risultato di esempio
Imposta la dimensione massima dei file da trasferire
Puoi definire la dimensione massima del file che deve essere trasferito e sincronizzato utilizzando l'opzione "–max-size".
$ rsync -avzh --max-size='50M' deb_packages [email protected]:/opt/backup-dir
Il comando sopra limita il trasferimento di file in deb_packages
directory a 50 Megabyte. Ciò implica che verranno trasferiti e sincronizzati solo i file uguali o inferiori a 50 MB.
Risultato di esempio
Elimina i file di origine dopo il trasferimento riuscito
Se stai facendo una copia di backup dei tuoi file su una destinazione remota ma desideri non conservarne una copia locale, usa il –remove-source-files
opzione come mostrato.
$ rsync --remove-source-files -zvh backup.tar /tmp/mybackups/
Risultato di esempio
Speriamo che questo articolo ti sia stato utile. In caso di domande, contattaci con il tuo feedback.