Rsnapshot (Tsarin Rsync) - Kayan Ajiyayyen Tsarin Fayil na Gida/Nusa don Linux


rsnapshot buɗaɗɗen tushen tushen tsarin fayil ne na gida/nesa da aka rubuta a cikin harshen Perl wanda ke amfana da ikon Rsync da shirin SSH don ƙirƙira, shirye-shiryen haɓakawa na tsarin fayil na Linux/Unix, yayin da kawai ke ɗaukar sarari na cikakken madadin guda ɗaya da bambance-bambance. kuma kiyaye waɗancan madogaran a kan faifan gida zuwa rumbun kwamfyuta daban-daban, sandar USB na waje, faifan NFS da aka ɗora ko kuma a sauƙaƙe akan hanyar sadarwa zuwa wata na'ura ta hanyar SSH.

Wannan labarin zai nuna yadda ake girka, saitawa da amfani da rsnapshot don ƙirƙirar ƙarin sa'o'i, yau da kullun, mako-mako da kowane wata, da kuma madogaran nesa. Don aiwatar da duk matakan da ke cikin wannan labarin, dole ne ku zama tushen mai amfani.

Mataki 1: Shigar da Ajiyayyen Rsnapshot a cikin Linux

Shigar da rsnapshot ta amfani da Yum da APT na iya bambanta kaɗan, idan kuna amfani da Red Hat da rarrabawar tushen Debian.

Da farko za ku shigar da kunna ma'ajiyar ɓangare na uku da ake kira EPEL. Da fatan za a bi hanyar haɗin da ke ƙasa don shigarwa kuma kunna ƙarƙashin tsarin RHEL/CentOS. Masu amfani da Fedora ba sa buƙatar kowane saitin ma'ajiya na musamman.

  1. Shigar kuma Kunna Ma'ajiyar EPEL a cikin RHEL/CentOS 6/5/4

Da zarar kun sami saitin abubuwa, shigar da rsnapshot daga layin umarni kamar yadda aka nuna.

# yum install rsnapshot

Ta hanyar tsoho, rsnapshot an haɗa a cikin ma'ajiyar Ubuntu, saboda haka zaku iya shigar da shi ta amfani da umarnin da ya dace kamar yadda aka nuna.

# apt-get install rsnapshot

Mataki 2: Saita SSH Password-less Login

Don madadin sabar Linux mai nisa, uwar garken madadin rsnapshot ɗinku zai iya haɗawa ta hanyar SSH ba tare da kalmar sirri ba. Don cim ma wannan, kuna buƙatar ƙirƙirar SSH na jama'a da maɓallan sirri don tantancewa akan sabar rsnapshot. Da fatan za a bi hanyar haɗin da ke ƙasa don samar da maɓallan jama'a da na sirri akan sabar madadin snapshot ɗin ku.

  1. Ƙirƙiri Shigar da Mara kalmar wucewa ta SSH Ta amfani da SSH Keygen

Mataki 3: Saita Rsnapshot

Yanzu kuna buƙatar gyara da ƙara wasu sigogi zuwa fayil ɗin sanyi na rsnapshot. Buɗe fayil ɗin rsnapshot.conf tare da editan vi ko nano.

# vi /etc/rsnapshot.conf

Na gaba ƙirƙiri kundin adireshi, inda kuke son adana duk abubuwan ajiyar ku. A yanayina wurin ajiyar adireshina shine \/data/backup/ Nemo kuma gyara siga mai zuwa don saita wurin ajiyar.

snapshot_root			 /data/backup/

Har ila yau, ba da amsa ga layin cmd_ssh don ba da damar ɗaukar bayanan nesa akan SSH. Don rashin gamsuwa da layin cire # a gaban layin da ke gaba domin snapshot ya sami damar canja wurin bayanan ku amintacce zuwa uwar garken ajiya.

cmd_ssh			/usr/bin/ssh

Na gaba, kuna buƙatar yanke shawarar tsoffin madogarawa nawa kuke son kiyayewa, saboda snapshot bai san sau nawa kuke son ɗaukar hotuna ba. Kuna buƙatar ƙayyade adadin bayanai don adanawa, ƙara tazara don kiyayewa, da nawa kowannensu.

Da kyau, saitunan tsoho suna da kyau, amma duk da haka ina so ku ba da damar tazarar\kowane wata don ku sami damar adana dogon lokaci a wurin. Da fatan za a gyara wannan sashe don yin kama da saitunan ƙasa.

#########################################
#           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

Wani abu da kuke buƙatar gyara shine ssh_args m. Idan kun canza tsohuwar tashar SSH Port (22) zuwa wani abu dabam, kuna buƙatar saka lambar tashar tashar sabar ku ta nesa.

ssh_args		-p 7851

A ƙarshe, ƙara kundayen adireshi na gida da na nesa waɗanda kuke son adanawa.

Idan kun yanke shawarar yin ajiyar kundayen adireshi a gida zuwa na'ura iri ɗaya, shigarwar madadin zai yi kama da wannan. Misali, Ina ɗaukar ajiyar kundayen adireshi na /tecmint da/sauransu.

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

Idan kuna son yin ajiyar kundayen adireshi na uwar garken nesa, to kuna buƙatar gaya wa snapshot inda uwar garken take da kuma waɗanne kundayen adireshi kuke son yin wariyar ajiya. Anan ina ɗaukar ajiyar bayanan sabar ta nesa ta “/gida” a ƙarƙashin “/data/ajiyayyen” directory akan sabar rsnapshot.

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

Karanta Hakanan:

  1. Yadda ake Ajiyayyen/Aiki tare adiresoshin Ta amfani da kayan aikin Rsync (Nusa Aiki tare)
  2. Yadda ake Canja wurin Fayiloli/Jaka ta Amfani da Umurnin SCP

Anan, zan ware komai, sannan kawai in ayyana abin da nake so in tallafawa. Don yin wannan, kuna buƙatar ƙirƙirar fayil ɗin cirewa.

# vi /data/backup/tecmint.exclude

Da farko sami jerin kundayen adireshi waɗanda kuke son adanawa kuma ƙara (-*) don keɓance komai. Wannan zai adana abin da kuka jera a cikin fayil ɗin kawai. Fayil na keɓance yayi kama da ƙasa.

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

Yin amfani da zaɓin cire fayil na iya zama da wahala sosai saboda amfani da recursion na rsync. Don haka, misalina na sama bazai zama abin da kuke kallo ba. Na gaba ƙara fayil ɗin keɓe zuwa fayil ɗin rsnapshot.conf.

exclude_file    /data/backup/tecmint.exclude

A ƙarshe, an kusan gamawa da tsarin farko. Ajiye /etc/rsnapshot.conf fayil ɗin sanyi kafin matsawa gaba. Akwai zaɓuɓɓuka da yawa don bayyanawa, amma ga samfurin daidaitawar fayil na.

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/

Duk zaɓuɓɓukan da ke sama da bayanin hujja sune kamar haka:

  1. config_version 1.2 = Sigar fayil ɗin Kanfigareshan
  2. snapshot_root = Wurin Ajiyayyen don adana hotunan hoto
  3. cmd_cp = Hanyar kwafi umarni
  4. cmd_rm = Hanyar cire umarni
  5. cmd_rsync = Hanyar rsync
  6. cmd_ssh = Hanya zuwa SSH
  7. cmd_logger = Hanyar da za a yi amfani da harsashi zuwa syslog
  8. cmd_du = Hanyar zuwa umarnin amfani da faifai
  9. tazara na sa'a = Nawa ake ajiyewa na awa daya.
  10. tazara kullum = Nawa ake ajiyewa a kullum.
  11. tazara mako-mako = Nawa ake ajiyewa na mako-mako.
  12. tazara kowane wata = Nawa ake ajiyewa a kowane wata.
  13. ssh_args = Hujjojin SSH na zaɓi, kamar tashar jiragen ruwa daban (-p )
  14. verbose = Bayanin kansa
  15. loglevel = Bayanin kansa
  16. logfile = Hanyar shiga fayil
  17. exclude_file = Hanyar zuwa fayil ɗin cirewa (za a yi bayani dalla-dalla)
  18. rsync_long_args = Dogayen muhawara don wuce zuwa rsync
  19. lockfile = Bayanin kansa
  20. ajiyayyen = Cikakken hanyar zuwa abin da za'a goyi baya tare da hanyar sanyawa dangi.

Mataki 4: Tabbatar da Kanfigareshan Rsnapshot

Da zarar kun gama tare da duk tsarin ku, lokaci ya yi don tabbatar da cewa komai yana aiki kamar yadda aka zata. Gudun umarni mai zuwa don tabbatar da cewa saitin ku yana da madaidaicin daidaitawa.

# rsnapshot configtest

Syntax OK

Idan komai ya daidaita daidai, za ku sami saƙon \Syntax OK Idan kun sami kowane saƙon kuskure, yana nufin kuna buƙatar gyara waɗannan kurakuran kafin kunna snapshot.

Na gaba, yi gwajin gwaji akan ɗaya daga cikin hotunan don tabbatar da cewa muna samar da sakamako daidai. Muna ɗaukar ma'aunin hourly don yin gwajin gwaji ta amfani da hujja -t (gwaji). Wannan umarnin da ke ƙasa zai nuna jerin kalmomi na abubuwan da zai yi, ba tare da yin su ba.

# 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/

Lura: Umurnin da ke sama yana gaya wa snapshot don ƙirƙirar madadin sa'a. A zahiri yana fitar da umarnin da zai yi idan muka aiwatar da su da gaske.

Mataki 5: Gudun Rsnapshot Da hannu

Bayan tabbatar da sakamakonku, zaku iya cire zaɓin \-t don aiwatar da umarni da gaske.

# rsnapshot hourly

Umurnin da ke sama zai gudanar da rubutun madadin tare da duk tsarin da muka ƙara a cikin fayil ɗin rsnapshot.conf kuma ya ƙirƙiri kundin adireshi ajiyayyen sannan ya ƙirƙiri tsarin shugabanci a ƙarƙashinsa wanda ke tsara fayilolin mu. Bayan gudanar da umarni a sama, zaku iya tabbatar da sakamakon ta zuwa wurin ajiyar ajiyar ku kuma jera tsarin tsarin ta amfani da umarnin ls -l kamar yadda aka nuna.

# cd /data/backup
# ls -l

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

Mataki 6: Automating da Tsarin

Don sarrafa aikin, kuna buƙatar tsara jadawalin rsnapshot don gudanar da wasu tazara daga Cron. Ta hanyar tsoho, rsnapshot yana zuwa tare da fayil ɗin cron a ƙarƙashin /etc/cron.d/rsnapshot, idan babu shi ƙirƙirar ɗaya kuma ƙara layin masu zuwa gare shi.

Ta hanyar tsohowar ƙa'idodin ana yin sharhi, don haka kuna buƙatar cire \# daga gaban sashin tsarawa don kunna waɗannan ƙimar.

# 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

Bari in yi bayani daidai, abin da ke sama da dokokin cron ke yi:

  1. Yana gudana kowane awa 4 kuma yana ƙirƙirar kundin adireshi na sa'o'i a ƙarƙashin/directory madadin.
  2. Yana gudana kowace rana da ƙarfe 3:30 na safe kuma ƙirƙirar kundin adireshi na yau da kullun a ƙarƙashin/directory directory.
  3. Yana gudanar da mako-mako a kowace Litinin a karfe 3:00 na safe kuma a ƙirƙiri kundin adireshi na mako-mako a ƙarƙashin/directory madadin.
  4. Yana gudana kowane wata a karfe 2:30 na safe kuma a ƙirƙiri kundin adireshi na wata-wata a ƙarƙashin/directory madadin.

Don ƙarin fahimtar yadda dokokin cron ke aiki, Ina ba da shawarar ku karanta labarinmu wanda ya bayyana.

  1. Misalan Jadawalin Cron 11

Mataki 7: Rsnapshot Rahotanni

rsnapshot ɗin yana ba da ƙaƙƙarfan ƙaramin rubutun Perl mai ba da rahoto wanda ke aiko muku da faɗakarwar imel tare da duk cikakkun bayanai game da abin da ya faru yayin ajiyar bayanan ku. Don saita wannan rubutun, kuna buƙatar kwafin rubutun a wani wuri ƙarƙashin /usr/local/bin kuma ku sanya shi aiwatarwa.

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

Na gaba, ƙara ma'auni -stats a cikin fayil ɗin rsnapshot.conf zuwa sashin doguwar gardama na rsync.

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

Yanzu gyara dokokin crontab waɗanda aka ƙara a baya kuma a kira rubutun rsnapreport.pl don ƙaddamar da rahotanni zuwa takamaiman adireshin imel.

# 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 

Da zarar kun ƙara abubuwan da ke sama daidai, za ku sami rahoto zuwa adireshin imel ɗinku mai kama da ƙasa.

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

Rubutun Magana

  1. shafin gida snapshot

Shi ke nan a yanzu, idan wasu matsaloli sun faru yayin shigarwa, ku jefar da ni sharhi. Har sai ku kasance tare da TecMint don ƙarin labarai masu ban sha'awa akan Buɗe tushen duniya.