Come utilizzare rsync per eseguire il backup dei dati su Linux

Sommario:

Come utilizzare rsync per eseguire il backup dei dati su Linux
Come utilizzare rsync per eseguire il backup dei dati su Linux

Video: Come utilizzare rsync per eseguire il backup dei dati su Linux

Video: Come utilizzare rsync per eseguire il backup dei dati su Linux
Video: Assistenza e Supporti: come togliere il blocco popup in Internet Explorer - YouTube 2024, Aprile
Anonim
rsync è un protocollo costruito per sistemi di tipo Unix che offre un'incredibile versatilità per il backup e la sincronizzazione dei dati. Può essere utilizzato localmente per eseguire il backup di file in directory diverse o può essere configurato per la sincronizzazione su Internet con altri host.
rsync è un protocollo costruito per sistemi di tipo Unix che offre un'incredibile versatilità per il backup e la sincronizzazione dei dati. Può essere utilizzato localmente per eseguire il backup di file in directory diverse o può essere configurato per la sincronizzazione su Internet con altri host.

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."

 Il comando su Red Hat / CentOS, dopo aver effettuato il login come root (notare che alcune recenti distribuzioni di Red Hat supportano il metodo sudo).
Il comando su Red Hat / CentOS, dopo aver effettuato il login come root (notare che alcune recenti distribuzioni di Red Hat supportano il metodo sudo).
 Il comando su Debian / Ubuntu.
Il comando su Debian / Ubuntu.

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.

Lo screenshot qui sopra ci dice che File1.txt e File2.jpg sono stati rilevati come nuovi o comunque modificati dalle copie esistenti in Directory2, e quindi sono stati sottoposti a backup. Suggerimento Noob: noti le barre finali alla fine delle directory nel mio comando rsync - quelle sono necessarie, assicurati di ricordarle.
Lo screenshot qui sopra ci dice che File1.txt e File2.jpg sono stati rilevati come nuovi o comunque modificati dalle copie esistenti in Directory2, e quindi sono stati sottoposti a backup. Suggerimento Noob: noti le barre finali alla fine delle directory nel mio comando rsync - quelle sono necessarie, assicurati di ricordarle.

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/

Come puoi vedere dallo screenshot qui sopra, l'output dato durante il backup sulla rete è praticamente lo stesso di quando esegui il backup localmente, l'unica cosa che cambia è il comando che usi. Si noti inoltre che è stata richiesta una password.Questo è per autenticarsi con SSH. È possibile impostare le chiavi RSA per saltare questo processo, che semplificherà anche l'automazione di rsync.
Come puoi vedere dallo screenshot qui sopra, l'output dato durante il backup sulla rete è praticamente lo stesso di quando esegui il backup localmente, l'unica cosa che cambia è il comando che usi. Si noti inoltre che è stata richiesta una password.Questo è per autenticarsi con SSH. È possibile impostare le chiavi RSA per saltare questo processo, che semplificherà anche l'automazione di rsync.

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/

Il comando precedente prende i file da Directory1, li inserisce in /ZippedFiles/archive.zip e quindi rsync quella directory a Directory2. Inizialmente, si potrebbe pensare che questo metodo si rivelerebbe inefficiente per i backup di grandi dimensioni, considerando che il file zip cambierà ogni volta che viene apportata la minima modifica a un file. Tuttavia, rsync trasferisce solo i dati modificati, quindi se il tuo file zip è 10 GB e aggiungi un file di testo a Directory1, rsync saprà che è tutto ciò che hai aggiunto (anche se è in un file zip) e trasferisci solo i pochi kilobyte di dati modificati.
Il comando precedente prende i file da Directory1, li inserisce in /ZippedFiles/archive.zip e quindi rsync quella directory a Directory2. Inizialmente, si potrebbe pensare che questo metodo si rivelerebbe inefficiente per i backup di grandi dimensioni, considerando che il file zip cambierà ogni volta che viene apportata la minima modifica a un file. Tuttavia, rsync trasferisce solo i dati modificati, quindi se il tuo file zip è 10 GB e aggiungi un file di testo a Directory1, rsync saprà che è tutto ciò che hai aggiunto (anche se è in un file zip) e trasferisci solo i pochi kilobyte di dati modificati.

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.

Consigliato: