rsnapshot è una fantastica utilità di backup Linux gratuita per eseguire il backup rsync del file system locale e remoto.
Questa è una serie di due articoli. In questo articolo, esaminiamo come installare e configurare l'utilità rsnapshot per eseguire backup rsync del file system locale. Nel prossimo articolo, esaminiamo come configurare l'utilità rsnapshot per eseguire il backup rsync del file system remoto.
rsnapshot utilizza la combinazione di rsync e hard link per mantenere backup completo e backup incrementali. Una volta che hai impostato e configurato rsnapshot, non è assolutamente necessaria alcuna manutenzione. rsnapshot si occuperà automaticamente dell'eliminazione e della rotazione dei vecchi backup.
Richiede anche molto meno spazio su disco. Il primo backup completo avrà le stesse dimensioni dei file e delle directory originali. I successivi backup completi di rsnapshot occupano solo meno spazio, poiché occupa solo il backup dei file modificati dal backup completo precedente.
1. Scarica l'utility di backup Linux rsnapshot
Scarica l'utilità rsnapshot da rsnapshot.org come mostrato di seguito.
# cd /usr/src # wget http://www.rsnapshot.org/downloads/rsnapshot-1.3.1.tar.gz # tar xvfz rsnapshot-1.3.1.tar.gz # cd rsnapshot-1.3.1
2. Installa rsnapshot per eseguire il backup di directory Linux
Installa l'utility di backup di rsnapshot Linux usando ./configure ed esegui l'installazione come mostrato di seguito.
# ./configure --sysconfdir=/etc checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes config.status: creating t/rsync.t config.status: creating t/gnu_cp.t config.status: creating t/relative_delete_bugfix.t Type "make install" to install the program. After rsnapshot is installed, don't forget to copy /etc/rsnapshot.conf.default to /etc/rsnapshot.conf # make install /usr/bin/pod2man -c '' -n 'rsnapshot' -r '' rsnapshot > rsnapshot.1 /usr/bin/pod2man -c '' -n 'rsnapshot-diff' -r '' rsnapshot-diff > rsnapshot-diff.1 make[1]: Entering directory `/usr/src/rsnapshot-1.3.1' test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin" /usr/bin/install -c 'rsnapshot' '/usr/local/bin/rsnapshot' /usr/bin/install -c 'rsnapshot-diff' '/usr/local/bin/rsnapshot-diff' test -z "/etc" || mkdir -p -- "/etc" /usr/bin/install -c -m 644 'rsnapshot.conf.default' '/etc/rsnapshot.conf.default' test -z "/usr/local/man/man1" || mkdir -p -- "/usr/local/man/man1" /usr/bin/install -c -m 644 './rsnapshot.1' '/usr/local/man/man1/rsnapshot.1' /usr/bin/install -c -m 644 './rsnapshot-diff.1' '/usr/local/man/man1/rsnapshot-diff.1' make[1]: Leaving directory `/usr/src/rsnapshot-1.3.1'
Ora crea un nuovo rsnapshot.conf basato sul file di configurazione predefinito fornito con l'utilità di backup rsnapshot linux.
# cp /etc/rsnapshot.conf.default /etc/rsnapshot.conf
3. Configura rsnapshot e specifica la directory di origine del backup
Apri /etc/rsnapshot.conf e decommenta le seguenti righe.
# vi /etc/rsnapshot.conf cmd_cp /bin/cp cmd_ssh /usr/bin/ssh cmd_du /usr/bin/du cmd_rsnapshot_diff /usr/local/bin/rsnapshot-diff logfile /var/log/rsnapshot
Definisci le tue directory di backup di destinazione in /etc/rsnapshot.conf come mostrato di seguito. In questo esempio,
- /ecc – directory di origine di cui eseguire il backup
- host locale/ – directory di destinazione in cui verrà archiviato il backup. Tieni presente che questa directory verrà creata nella directory /.snapshots/{internal.n}/ come mostrato nell'ultimo passaggio.
# vi /etc/rsnapshot.conf backup /etc/ localhost/
Nota: Cambia /etc/ nella directory appropriata di cui desideri eseguire il backup.
4. Verifica la configurazione di rsnapshot
Esegui il test di configurazione per assicurarti che rsnapshot sia configurato correttamente e pronto per eseguire il backup di rsync di Linux.
# rsnapshot configtest Syntax OK
5. Verifica la configurazione del backup orario di rsnapshot
È possibile eseguire il backup di directory o file Linux a vari intervalli. Per impostazione predefinita, sono configurati i backup orari e giornalieri.
Verifica la configurazione del backup orario.
# rsnapshot -t hourly echo 6490 > /var/run/rsnapshot.pid mkdir -m 0700 -p /.snapshots/ mkdir -m 0755 -p /.snapshots/hourly.0/ /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /home \ /.snapshots/hourly.0/localhost/ mkdir -m 0755 -p /.snapshots/hourly.0/ /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /etc \ /.snapshots/hourly.0/localhost/ mkdir -m 0755 -p /.snapshots/hourly.0/ /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \ /usr/local /.snapshots/hourly.0/localhost/ touch /.snapshots/hourly.0/
6. Verifica la configurazione del backup giornaliero di rsnapshot
Verifica che il processo di backup giornaliero di rsnapshot cwrsync sia configurato correttamente.
# rsnapshot -t daily echo 6493 > /var/run/rsnapshot.pid mkdir -m 0700 -p /.snapshots/ /.snapshots/hourly.5 not present (yet), nothing to copy
7. Intervallo di backup rsnapshot non valido
Non esiste un intervallo di backup mensile. Quindi, se provi a verificare la configurazione del backup mensile, potresti ricevere questo messaggio come mostrato di seguito:ERRORE:Intervallo "mensile" sconosciuto, controlla /etc/rsnapshot.conf
# rsnapshot -t weekly echo 6495 > /var/run/rsnapshot.pid mkdir -m 0700 -p /.snapshots/ /.snapshots/daily.6 not present (yet), nothing to copy # rsnapshot -t monthly echo 6496 > /var/run/rsnapshot.pid mkdir -m 0700 -p /.snapshots/ ---------------------------------------------------------------------------- rsnapshot encountered an error! The program was invoked with these options: /usr/local/bin/rsnapshot -t monthly ---------------------------------------------------------------------------- ERROR: Interval "monthly" unknown, check /etc/rsnapshot.conf
8. Aggiungi la voce Crontab per rsnapshot
Dopo aver verificato che le configurazioni di backup orario e giornaliero di rsync sono impostate correttamente nell'utilità rsnapshot cwrsync, è il momento di configurare questo cucciolo nel crontab come mostrato di seguito.
# crontab -e 0 */4 * * * /usr/local/bin/rsnapshot hourly 30 23 * * * /usr/local/bin/rsnapshot daily
Dai un'occhiata all'articolo sugli esempi di crontab di Unix per capire come impostare e configurare crontab.
9. Verifica manualmente il lavoro rsnapshot (controllo una tantum)
Per la prima volta, potresti voler eseguire manualmente il backup di rsnapshot per assicurarti che funzioni come previsto.
Per impostazione predefinita, tutto il backup rsync eseguito dall'utilità rnspashot verrà archiviato nella directory /.snapshots.
Poiché rsnapshot non è mai stato eseguito, questa directory potrebbe non esistere come mostrato di seguito.
# ls -al /.snapshots/ ls: /.snapshots/: No such file or directory
Eseguire manualmente l'utilità di backup rsnapshot per la configurazione oraria come mostrato di seguito.
# /usr/local/bin/rsnapshot hourly
Poiché abbiamo eseguito il backup orario, l'utilità di backup rsnapshot linux avrebbe creato la seguente directory /.snapshots con la directory hourly.0
Sfoglia la directory /.snapshots/hourly.0/ per assicurarti che i file e le directory che hai configurato nel passaggio 3 siano sottoposti a backup di conseguenza.
# ls -al /.snapshots/ total 16 drwx------ 3 root root 4096 Jul 13 05:07 .s drwxr-xr-x 25 root root 4096 Jul 13 05:07 .. drwxr-xr-x 3 root root 4096 Jul 13 05:07 hourly.0 # ls -al /.snapshots/hourly.0/localhost/etc/ total 2516 drwxr-xr-x 93 root root 12288 Jul 13 05:05 . drwxr-xr-x 3 root root 4096 Jul 13 05:07 .. -rw-r--r-- 1 root root 15288 Mar 13 2008 a2ps.cfg -rw-r--r-- 1 root root 2562 Mar 13 2008 a2ps-site.cfg drwxr-xr-x 4 root root 4096 Oct 31 2008 acpi -rw-r--r-- 1 root root 44 Jan 16 10:43 adjtime drwxr-xr-x 4 root root 4096 Jan 16 10:36 alchemist -rw-r--r-- 1 root root 2155 Mar 19 08:22 aliases -rw-r----- 1 root smmsp 12288 Mar 19 08:22 aliases.db
Nel nostro prossimo articolo, esaminiamo come eseguire il backup di più host remoti utilizzando l'utilità rsnapshot.