
Può essere utilizzato su sistemi Windows, ma è disponibile solo attraverso varie porte (come Cygwin), quindi in questo how-to si parlerà di come configurarlo su Linux. Per prima cosa, dobbiamo installare / aggiornare il client rsync. Nelle distribuzioni Red Hat, il comando è "yum install rsync" e su Debian è "sudo apt-get install rsync."


Utilizzo di rsync per backup locali
Nella prima parte di questo tutorial, eseguiremo il backup dei file da Directory1 a Directory2. Entrambe queste directory si trovano sullo stesso disco rigido, ma funzionerebbe esattamente allo stesso modo se le directory fossero presenti su due dischi diversi. Ci sono diversi modi in cui possiamo avvicinarci a questo, a seconda del tipo di backup che si desidera configurare. Per la maggior parte degli scopi, la seguente riga di codice sarà sufficiente:
$ rsync -av --delete /Directory1/ /Directory2/
Il codice sopra sincronizzerà il contenuto di Directory1 a Directory2 e non lascerà alcuna differenza tra i due. Se rsync rileva che Directory2 ha un file che Directory1 non ha, lo eliminerà. Se rsync trova un file che è stato modificato, creato o eliminato in Directory1, rifletterà le stesse modifiche a Directory2.
Esistono molte opzioni diverse che è possibile utilizzare per rsync per personalizzarlo in base alle esigenze specifiche. Ecco cosa il codice di cui sopra dice a rsync di fare con i backup:
1. -a = ricorsiva (recurse in directory), links (copia symlink come symlinks), permanenti (preserva permessi), times (preservare i tempi di modifica), group (preserve group), owner (preserve owner), preservare i file del dispositivo, e preservare file speciali. 2. -v = dettagliato. Il motivo per cui ritengo importante è verbose in modo da poter vedere esattamente cosa rsync sta facendo il backup. Pensa a questo: cosa succede se il tuo disco rigido sta andando male e inizia a eliminare i file a tua insaputa, quindi esegui lo script rsync e apporta tali modifiche ai tuoi backup, eliminando così tutte le istanze di un file che non volevi ottenere sbarazzarsi di? 3. -delete = Questo indica a rsync di cancellare tutti i file presenti in Directory2 che non si trovano in Directory1. Se scegli di utilizzare questa opzione, ti consiglio di utilizzare anche le opzioni dettagliate, per le ragioni sopra menzionate.
Usando lo script sopra, ecco l'output generato usando rsync per fare il backup di Directory1 in Directory2. Si noti che senza l'interruttore dettagliato, non si riceveranno tali informazioni dettagliate.

Passeremo ad alcuni switch più utili verso la fine di questo tutorial, ma ricordati che per visualizzare un elenco completo puoi digitare "man rsync" e visualizzare un elenco completo di switch da utilizzare.
Questo riguarda lo copre fino ai backup locali. Come puoi vedere, rsync è molto facile da usare. Diventa leggermente più complesso quando lo si utilizza per sincronizzare i dati con un host esterno su Internet, ma ti mostreremo un modo semplice, veloce e sicuro per farlo.
Utilizzo di rsync per backup esterni
rsync può essere configurato in diversi modi per i backup esterni, ma andremo oltre il più pratico (anche il più semplice e sicuro) metodo di tunneling rsync tramite SSH. La maggior parte dei server e persino molti client dispongono già di SSH e possono essere utilizzati per i backup rsync. Ti mostreremo il processo per far eseguire il backup di una macchina Linux su un'altra su una rete locale. Il processo sarebbe esattamente lo stesso se un host fosse su Internet da qualche parte, basta notare che la porta 22 (o qualsiasi altra porta su cui è configurato SSH), dovrebbe essere inoltrata su qualsiasi apparecchiatura di rete sul lato del server.
Sul server (il computer che riceverà i backup), assicurarsi che SSH e rsync siano installati.
# yum -y install ssh rsync
# sudo apt-get install ssh rsync
Oltre all'installazione di SSH e rsync sul server, tutto ciò che deve essere fatto è configurare i repository sul server in cui si desidera eseguire il backup dei file e assicurarsi che SSH sia bloccato. Assicurati che l'utente che intendi utilizzare abbia una password complessa e potrebbe anche essere una buona idea cambiare la porta su cui SSH è in ascolto (il valore predefinito è 22).
Eseguiremo lo stesso comando che abbiamo fatto per usare rsync su un computer locale, ma includiamo le aggiunte necessarie per il tunneling rsync tramite SSH verso un server sulla mia rete locale. Per l'utente "geek" che si connette a "192.168.235.137" e usando gli stessi switch come sopra (-av -delete) faremo quanto segue:
$ rsync -av –delete -e ssh /Directory1/ [email protected]:/Directory2/
Se si sta ascoltando SSH su una porta diversa da 22, è necessario specificare il numero di porta, come in questo esempio in cui utilizzo la porta 12345:
$ rsync -av –delete -e 'ssh -p 12345' /Directory1/ [email protected]:/Directory2/

Automazione di backup rsync
Cron può essere usato su Linux per automatizzare l'esecuzione di comandi, come rsync. Usando Cron, possiamo fare in modo che il nostro sistema Linux esegua backup notturni o comunque desideri che vengano eseguiti.
Per modificare il file della tabella cron per l'utente con cui hai effettuato l'accesso, esegui:
$ crontab -e
Avrai bisogno di familiarizzare con vi per modificare questo file. Digitare "I" per l'inserimento, quindi iniziare a modificare il file della tabella cron.
Cron utilizza la seguente sintassi: minuto dell'ora, ora del giorno, giorno del mese, mese dell'anno, giorno della settimana, comando.
All'inizio può essere un po 'confuso, quindi lasciatemi fare un esempio. Il seguente comando eseguirà il comando rsync ogni notte alle 22:
0 22 * * * rsync -av --delete /Directory1/ /Directory2/
Il primo "0" specifica il minuto dell'ora e "22" specifica le 10 PM. Dato che vogliamo eseguire questo comando ogni giorno, lasceremo il resto dei campi con asterischi e quindi incolleremo il comando rsync.
Dopo aver terminato la configurazione di Cron, premere escape, quindi digitare ": wq" (senza virgolette) e premere invio. Questo salverà le tue modifiche in vi.
Cron può essere molto più approfondito di questo, ma andare avanti sarebbe oltre lo scopo di questo tutorial. La maggior parte delle persone vorranno semplicemente un semplice backup settimanale o giornaliero, e ciò che abbiamo dimostrato si può ottenere facilmente. Per maggiori informazioni su Cron, consultare le pagine man.
Altre caratteristiche utili
Un'altra cosa utile che puoi fare è mettere i tuoi backup in un file zip. Sarà necessario specificare dove si desidera inserire il file zip, quindi rsync quella directory nella directory di backup. Per esempio:
$ zip /ZippedFiles/archive.zip /Directory1/ && rsync -av --delete /ZippedFiles/ /Directory2/

Esistono due modi diversi per crittografare i backup rsync. Il metodo più semplice consiste nell'installare la crittografia sul disco rigido stesso (quello su cui viene eseguito il backup dei file). Un altro modo è quello di crittografare i tuoi file prima di inviarli a un server remoto (o altro disco rigido, qualsiasi cosa tu stia facendo il backup). Tratteremo questi metodi negli articoli successivi.
Qualunque siano le opzioni e le caratteristiche che scegli, rsync risulta essere uno degli strumenti di backup più efficienti e versatili fino ad oggi, e anche un semplice script rsync può farti risparmiare la perdita dei dati.