Rsnapshot (Rsync Based) - kohaliku/kaugfailisüsteemi varundamise utiliit Linuxile


rsnapshot on avatud lähtekoodiga kohaliku/kaugfailisüsteemi varundamise utiliit, mis on kirjutatud Perli keeles ja mis eelistab Rsynci ja SSH programmi võimet luua Linuxi/Unixi failisüsteemide kavandatud täiendavaid varukoopiaid, võttes samas ruumi ainult ühest täielikust varukoopiast koos erinevustega ja hoidke need varukoopiad kohalikul kettal erineval kõvakettal, välisel USB-mälupulgal, NFS-i ühendatud draivil või lihtsalt üle võrgu teise masina SSH kaudu.

Selles artiklis selgitatakse, kuidas rsnapshot installida, seadistada ja kasutada kohalike tunni-, päeva-, nädala- ja igakuiste kohalike varukoopiate ning kaugvarukoopiate loomiseks. Selle artikli kõigi toimingute sooritamiseks peate olema juurkasutaja.

1. samm: Rsnapshot Backupi installimine Linuxi

Rsnapshoti installimine Yumi ja APT abil võib veidi erineda, kui kasutate Red Hati ja Debiani põhiseid jaotusi.

Kõigepealt peate installima ja lubama kolmanda osapoole hoidla nimega EPEL. RHEL/CentOS-süsteemide installimiseks ja lubamiseks järgige allolevat linki. Fedora kasutajad ei vaja spetsiaalseid hoidla konfiguratsioone.

  1. Installige ja lubage EPEL-i hoidla RHEL/CentOS 6/5/4-s

Kui olete asjad seadistanud, installige rsnapshot käsurealt, nagu näidatud.

# yum install rsnapshot

Vaikimisi on rsnapshot lisatud Ubuntu hoidlatesse, nii et saate selle installida, kasutades käsku apt-get, nagu näidatud.

# apt-get install rsnapshot

2. samm: SSH-paroolita sisselogimise seadistamine

Linuxi kaugserverite varundamiseks saab teie rsnapshoti varundusserver SSH kaudu paroolita ühenduse luua. Selle saavutamiseks peate rsnapshoti serveris autentimiseks looma SSH-i avaliku ja privaatse võtme. Rsnapshoti varundusserverisse avalike ja privaatsete võtmete loomiseks järgige linki.

  1. SSH paroolita sisselogimise loomine SSH Keügeni abil

3. samm: Rsnapshoti konfigureerimine

Nüüd peate redigeerima ja lisama mõned parameetrid rsnapshoti konfiguratsioonifaili. Avage fail rsnapshot.conf vi- või nano-redaktoriga.

# vi /etc/rsnapshot.conf

Järgmisena looge varukataloog, kuhu soovite kõik varukoopiad salvestada. Minu puhul on minu varukataloogi asukoht „/ data/backup /”. Varunduskoha määramiseks otsige ja muutke järgmist parameetrit.

snapshot_root			 /data/backup/

Kommenteerige ka rida „cmd_ssh”, et võimaldada SSH-st kaugkoopiaid. Rea eemaldamiseks eemaldage järgmise rea ees olev number “#”, et rsnapshot saaks teie andmed turvaliselt varundusserverisse edastada.

cmd_ssh			/usr/bin/ssh

Järgmisena peate otsustama, mitu vana varukoopiat soovite säilitada, sest rsnapshotil polnud aimugi, kui sageli soovite hetktõmmiseid teha. Peate määrama, kui palju andmeid tuleb salvestada, lisada säilitatavate intervallide arv ja mitu neist.

Noh, vaikeseaded on piisavalt head, kuid siiski tahaksin, et lubaksite igakuise intervalli, et saaksite ka pikemaajalisi varukoopiaid paigas olla. Muutke seda jaotist, et see sarnaneks allolevate seadetega.

#########################################
#           BACKUP INTERVALS            #
# Must be unique and in ascending order #
# i.e. hourly, daily, weekly, etc.      #
#########################################

interval        hourly  6
interval        daily   7
interval        weekly  4
interval        monthly 3

Veel üks asi, mida peate muutma, on muutuja „ssh_args”. Kui olete muutnud vaikimisi SSH-pordi (22) millekski muuks, peate määrama selle kaugserveri serveri pordinumbri.

ssh_args		-p 7851

Lõpuks lisage oma kohalikud ja kaug varukataloogid, mida soovite varundada.

Kui olete otsustanud varundada kataloogid kohapeal samasse masinasse, näeks varukoopia selline välja. Näiteks võtan varukoopia oma/tecmint ja/etc kataloogidest.

backup		/tecmint/		localhost/
backup		/etc/			localhost/

Kui soovite varundada serveriserverite katalooge, peate rsnapshotile ütlema, kus server asub ja millistest kataloogidest soovite varundada. Siin võtan varukoopia kaugserverist "/ home" kataloogi rsnapshot serveri kataloogi "/ data/backup" alt.

backup		 [email :/home/ 		/data/backup/

Loe ka:

  1. Kuidas katalooge varundada/sünkroonida Rsynci (kaugsünkroonimise) tööriista abil
  2. Kuidas faile/kaustu SCP-käsu abil teisaldada

Siinkohal jätan kõik välja ja määratlen siis ainult konkreetselt, mida ma varundada tahan. Selleks peate looma välistamisfaili.

# vi /data/backup/tecmint.exclude

Kõigepealt hankige loend kataloogidest, mida soovite varundada, ja lisage (- *), et kõik muu välistada. See varundab ainult failis loetletud andmed. Minu väljajätmisfail näeb välja sarnane allolevaga.

+ /boot
+ /data
+ /tecmint
+ /etc
+ /home
+ /opt
+ /root
+ /usr
- /usr/*
- /var/cache
+ /var
- /*

Faili väljajätmise kasutamine võib rsynci rekursiooni kasutamise tõttu olla väga keeruline. Nii et minu ülaltoodud näide ei pruugi olla see, mida te otsite. Järgmisena lisage välistamisfail faili rsnapshot.conf.

exclude_file    /data/backup/tecmint.exclude

Lõpuks olete algse seadistusega peaaegu valmis. Enne kaugemale liikumist salvestage konfiguratsioonifail “/etc/rsnapshot.conf”. Selgitamiseks on palju võimalusi, kuid siin on minu näidiskonfiguratsioonifail.

config_version  1.2
snapshot_root   /data/backup/
cmd_cp  /bin/cp
cmd_rm  /bin/rm
cmd_rsync       /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger      /usr/bin/logger
cmd_du  /usr/bin/du
interval        hourly  6
interval        daily   7
interval        weekly  4
interval        monthly 3
ssh_args	-p 25000
verbose 	2
loglevel        4
logfile /var/log/rsnapshot/
exclude_file    /data/backup/tecmint.exclude
rsync_long_args --delete        --numeric-ids   --delete-excluded
lockfile        /var/run/rsnapshot.pid
backup		/tecmint/		localhost/
backup		/etc/			localhost/
backup		[email :/home/ 		/data/backup/

Kõik ülaltoodud valikud ja argumentide selgitused on järgmised:

  1. config_version 1.2 = Konfiguratsioonifaili versioon
  2. snapshot_root = Varunduse sihtkoht hetktõmmiste salvestamiseks
  3. cmd_cp = Käsu kopeerimise tee
  4. cmd_rm = Tee käsu eemaldamiseks
  5. cmd_rsync = Tee sünkroonimise juurde
  6. cmd_ssh = Tee SSH-le
  7. cmd_logger = Tee käsu liidese viis syslogisse
  8. cmd_du = Ketta kasutamise tee
  9. interval hourly = mitu tunnis olevat varukoopiat säilitada.
  10. intervall iga päev = mitu igapäevast varukoopiat säilitada.
  11. intervall nädalas = mitu iganädalast varukoopiat säilitada.
  12. intervalli kuus = mitu igakuist varukoopiat säilitada.
  13. ssh_args = Valikulised SSH-argumendid, näiteks erinev port (-p)
  14. verbose = seletamatu
  15. loglevel = enesestmõistetav
  16. logifail = tee logifaili
  17. exclusive_file = Tee välistamisfaili (selgitatakse üksikasjalikumalt)
  18. rsync_long_args = Pikad argumendid rsyncile edastamiseks
  19. lockfile = Seletamatu
  20. varukoopia = täielik tee varundatava juurde, millele järgneb suhteline paigutusteekond.

4. samm: kontrollige Rsnapshoti konfiguratsiooni

Kui olete kogu konfiguratsiooni teinud, on aeg kontrollida, kas kõik töötab ootuspäraselt. Käivitage järgmine käsk, et kontrollida, kas teie konfiguratsioonis on õige süntaks.

# rsnapshot configtest

Syntax OK

Kui kõik on õigesti konfigureeritud, saate teate „Süntaks OK”. Kui saate veateateid, tähendab see, et peate enne rsnapshoti käivitamist need vead parandama.

Järgmisena tehke ühe hetktõmmise abil proovisõit, veendumaks, et loome õiged tulemused. Võtame parameetri “tunnis”, et teha testkäsk, kasutades argumenti -t (test). See allpool olev käsk kuvab üksikasjaliku loendi asjadest, mida ta teeb, ilma neid tegelikult tegemata.

# rsnapshot -t hourly
echo 2028 > /var/run/rsnapshot.pid 
mkdir -m 0700 -p /data/backup/ 
mkdir -m 0755 -p /data/backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /home \
    /backup/hourly.0/localhost/ 
mkdir -m 0755 -p /backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /etc \
    /backup/hourly.0/localhost/ 
mkdir -m 0755 -p /data/backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    /usr/local /data/backup/hourly.0/localhost/ 
touch /data/backup/hourly.0/

Märkus: ülaltoodud käsk käsib rsnapshotil luua „tunnise” varukoopia. See prindib tegelikult välja käsklused, mida ta täidab, kui me seda tegelikult täidame.

5. samm: Rsnapshoti käsitsi käitamine

Pärast tulemuste kontrollimist saate käsu tõeliselt käivitamiseks eemaldada valiku „-t”.

# rsnapshot hourly

Ülaltoodud käsk käivitab varukripti kogu konfiguratsiooniga, mille lisasime faili rsnapshot.conf, loob kataloogi varukoopia ja loob selle alla kataloogistruktuuri, mis korraldab meie faile. Pärast käsu ülalt käivitamist saate tulemusi kontrollida varukataloogi minnes ja kataloogistruktuuri loendi abil käsuga ls -l, nagu näidatud.

# cd /data/backup
# ls -l

total 4
drwxr-xr-x 3 root root 4096 Oct 28 09:11 hourly.0

6. samm: protsessi automatiseerimine

Protsessi automatiseerimiseks peate ajastama rsnapshoti käivitamise teatud intervallidega Cronist. Vaikimisi on rsnapshot kaasas cron-failiga jaotises /etc/cron.d/rsnapshot, kui seda pole, looge see ja lisage sellele järgmised read.

Reeglite järgi kommenteeritakse reegleid, seega peate nende väärtuste lubamiseks ajakava jaotise eest eemaldama märgi „#”.

# This is a sample cron file for rsnapshot.
# The values used correspond to the examples in /etc/rsnapshot.conf.
# There you can also set the backup points and many other things.
#
# To activate this cron file you have to uncomment the lines below.
# Feel free to adapt it to your needs.

0     */4    * * *    root    /usr/bin/rsnapshot hourly
30     3     * * *    root    /usr/bin/rsnapshot daily
0      3     * * 1    root    /usr/bin/rsnapshot weekly
30     2     1 * *    root    /usr/bin/rsnapshot monthly

Lubage mul selgitada täpselt, mida ülalolevad croni reeglid teevad:

  1. Töötab iga 4 tunni järel ja loob tunnikataloogi/varukataloogi alla.
  2. Töötab iga päev kell 3.30 ja looge iga päev kataloog/varukataloog.
  3. Töötab igal nädalal igal esmaspäeval kell 3:00 ja looge iganädalane kataloog/varukataloogi alla.
  4. Töötab iga kuu kell 2.30 ja looge igakuine kataloog/varukataloogi alla.

Croni reeglite toimimise paremaks mõistmiseks soovitan teil lugeda meie kirjeldavat artiklit.

  1. 11 näidet kroonide ajastamise kohta

7. samm: Rsnapshoti aruanded

Rsnapshot pakub vahva väikese aruandlusega Perli skripti, mis saadab teile meilisõnumi koos kõigi üksikasjadega selle kohta, mis teie andmete varundamise ajal toimus. Selle skripti seadistamiseks peate skripti kopeerima kuhugi „/ usr/local/bin” alla ja muutma selle käivitatavaks.

# cp /usr/share/doc/rsnapshot-1.3.1/utils/rsnapreport.pl /usr/local/bin
# chmod +x /usr/local/bin/rsnapreport.pl

Järgmisena lisage parameeter „–stats” oma faili „rsnapshot.conf” rsynci pikkade argumentide sektsiooni.

vi /etc/rsnapshot.conf
rsync_long_args --stats	--delete        --numeric-ids   --delete-excluded

Nüüd muutke varem lisatud crontabi reegleid ja helistage skriptile rsnapreport.pl, et edastada aruanded määratud e-posti aadressile.

# This is a sample cron file for rsnapshot.
# The values used correspond to the examples in /etc/rsnapshot.conf.
# There you can also set the backup points and many other things.
#
# To activate this cron file you have to uncomment the lines below.
# Feel free to adapt it to your needs.

0     */4    * * *    root    /usr/bin/rsnapshot hourly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Hourly Backup" [email 
30     3     * * *    root    /usr/bin/rsnapshot daily 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Daily Backup" [email 
0      3     * * 1    root    /usr/bin/rsnapshot weekly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Weekly Backup" [email 
30     2     1 * *    root    /usr/bin/rsnapshot monthly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Montly Backup" [email 

Kui olete ülaltoodud kirjed õigesti lisanud, saate oma e-posti aadressile aruande, mis on sarnane allpool kirjeldatuga.

SOURCE           TOTAL FILES	FILES TRANS	TOTAL MB    MB TRANS   LIST GEN TIME  FILE XFER TIME
--------------------------------------------------------------------------------------------------------
localhost/          185734	   11853   	 2889.45    6179.18    40.661 second   0.000 seconds

Viited

  1. rsnapshoti koduleht

See on selleks hetkeks, kui installimisel tekib probleeme, jätke mulle kommentaar. Kuni selle ajani saate jälgida TecMinti huvitavaid artikleid avatud lähtekoodiga maailmast.