Installare RSYNC
Guida passo dopo passo per l'installazione e la configurazione di Remote Synchronization (RSYNC) per la sincronizzazione dei dati.
rsync (Remote Synchronization) è un'applicazione a riga di comando multipiattaforma per sincronizzare dati con un consumo minimo di larghezza di banda. È ampiamente utilizzata per backup, migrazioni e mirroring di dati tra server.
Ad esempio, rsync consente di trasferire progetti da un web hosting a un VPS, sincronizzare directory tra più server dedicati e mantenere copie aggiornate dei file all'interno dell'infrastruttura.
Installare rsync
Per installare il modulo rsync sul server, esegui i comandi corrispondenti in base al sistema operativo.
Per CentOS:
yum -y install rsync
Per Debian/Ubuntu:
sudo aptitude install rsync
I nostri prodotti e servizi
Esempi di utilizzo di rsync
Sincronizzazione locale
sudo rsync -avh --delete /var/www/ /root/backup/www/
Questo comando sincronizza il contenuto della directory /var/www/ con /root/backup/www/, eliminando i file che non esistono più nella sorgente. È utile per creare un mirror di una directory.
Sincronizzazione verso un server remoto
sudo rsync -avh --delete /var/www/ root@192.168.1.50:/root/backup/www/
In questo esempio i file vengono copiati su un altro server via SSH. Per eseguire la sincronizzazione, rsync deve essere installato su entrambi i server.
Sincronizzazione da un server remoto alla macchina locale
sudo rsync -avh root@192.168.1.50:/var/www/ /root/backup/www/
Questo esempio mostra come sincronizzare dati da un server remoto alla macchina locale. È utile per trasferire file da un altro server.
Sincronizzazione via SSH con una porta non standard
sudo rsync -avh -e "ssh -p 1111" root@192.168.1.50:/var/www/ /root/backup/www/
Se il server SSH è configurato per usare una porta non standard, ad esempio la 1111, si usa il parametro -e per specificarla. Questo esempio consente di sincronizzare i file via SSH su una porta diversa.
Esclusione di directory
sudo rsync -avh --exclude='dir/' --exclude='dir/tmp/' /var/www/ /root/backup/www/
In questo esempio i file delle directory dir e dir/tmp vengono esclusi dalla sincronizzazione. È utile quando si vogliono escludere dati temporanei o non necessari dal backup.
Trasferimento di file da un server remoto (con rimozione della sorgente)
sudo rsync -avh --remove-source-files root@192.168.1.50:/var/www/ /var/www/
Questo esempio copia i file da un server remoto eliminandoli contemporaneamente dalla directory sorgente. È particolarmente utile per migrare dati da un server all'altro.
Copia di un database MySQL su un altro disco
sudo rsync -vrplogDtH --progress /var/lib/mysql/ /newhdd/var/lib/mysql/
Questo esempio serve a copiare un intero database MySQL, inclusi la sua struttura e i suoi file. L'opzione --progress permette di monitorare l'avanzamento del trasferimento.
Parametri e flag rsync più utilizzati
-v— modalità verbose: mostra informazioni dettagliate sul processo di copia.-r— copia ricorsiva (recursive): utilizzata per copiare directory.-a— modalità archivio (archive): preserva permessi, symlink, timestamp e struttura delle directory.-b— modalità backup: crea copie dei file modificati prima di sostituirli.-c— verifica tramite checksum: garantisce che i dati siano stati sincronizzati correttamente.--delete— elimina i file che non esistono più nella cartella sorgente.-h— output leggibile (human-readable): mostra le dimensioni dei file in un formato comprensibile (ad esempio in megabyte).-n— simulazione senza modifiche (dry-run): mostra cosa verrebbe eseguito senza apportare alcuna modifica.-p— preservazione dei permessi (permissions): garantisce che i permessi di accesso ai file vengano mantenuti.-z— compressione dei dati durante il trasferimento (compress): riduce il volume di dati trasferiti.-H— preservazione degli hard link, se presenti nei dati sorgente.-x— limitazione a un singolo filesystem (one-file-system).
L'elenco completo delle opzioni disponibili si trova nel manuale:
man rsync
Aiuto
Hai domande o ti serve una mano? Scrivici tramite il sistema di ticket — siamo sempre qui per aiutarti!