Picha ya muhtasari (Inayolingana na Rsync) - Huduma ya Hifadhi Nakala ya Mfumo wa Faili ya Ndani/Mbali kwa ajili ya Linux


rsnapshot ni programu huria ya chelezo ya mfumo wa ndani/wa mbali iliandikwa kwa lugha ya Perl ambayo inanufaisha uwezo wa Rsync na programu ya SSH kuunda, nakala rudufu zilizopangwa za mifumo ya faili ya Linux/Unix, huku ikichukua nafasi ya chelezo moja kamili pamoja na tofauti. na uweke chelezo hizo kwenye kiendeshi cha ndani kwa diski kuu tofauti, fimbo ya nje ya USB, kiendeshi kilichowekwa cha NFS au kwa urahisi juu ya mtandao hadi kwa mashine nyingine kupitia SSH.

Makala haya yataonyesha jinsi ya kusakinisha, kusanidi na kutumia snapshot ili kuunda nakala rudufu za ndani za kila saa, kila siku, kila wiki na kila mwezi, pamoja na nakala za mbali. Ili kutekeleza hatua zote katika kifungu hiki, lazima uwe mtumiaji wa mizizi.

Hatua ya 1: Kusakinisha Hifadhi rudufu ya Rsnapshot katika Linux

Usakinishaji wa picha kwa kutumia Yum na APT unaweza kutofautiana kidogo, ikiwa unatumia ugawaji wa Red Hat na Debian.

Kwanza itabidi usakinishe na kuwezesha hazina ya wahusika wengine inayoitwa EPEL. Tafadhali fuata kiungo kilicho hapa chini ili kusakinisha na kuwezesha chini ya mifumo yako ya RHEL/CentOS. Watumiaji wa Fedora hawahitaji usanidi wowote maalum wa hazina.

  1. Sakinisha na Wezesha Hifadhi ya EPEL katika RHEL/CentOS 6/5/4

Mara tu unapoweka vitu, sakinisha rsnapshot kutoka kwa safu ya amri kama inavyoonyeshwa.

# yum install rsnapshot

Kwa chaguo-msingi, rsnapshot imejumuishwa kwenye hazina za Ubuntu, kwa hivyo unaweza kuisakinisha kwa kutumia apt-get amri kama inavyoonyeshwa.

# apt-get install rsnapshot

Hatua ya 2: Kuweka Kuingia kwa Nenosiri la SSH

Ili kuhifadhi nakala za seva za mbali za Linux, seva yako ya chelezo ya rsnapshot itaweza kuunganishwa kupitia SSH bila nenosiri. Ili kukamilisha hili, utahitaji kuunda funguo za SSH za umma na za kibinafsi ili kuthibitisha kwenye seva ya rsnapshot. Tafadhali fuata kiungo kilicho hapa chini ili kuzalisha funguo za umma na za faragha kwenye seva yako ya chelezo ya snapshot.

  1. Unda Kuingia Bila Nenosiri la SSH Kwa Kutumia Kitufe cha SSH

Hatua ya 3: Kusanidi Muhtasari

Sasa utahitaji kuhariri na kuongeza baadhi ya vigezo kwa rsnapshot faili ya usanidi. Fungua faili ya rsnapshot.conf na kihariri cha vi au nano.

# vi /etc/rsnapshot.conf

Ifuatayo, tengeneza saraka ya chelezo, ambapo unataka kuhifadhi nakala zako zote. Kwa upande wangu eneo la saraka yangu ya chelezo ni \/data/chelezo/.Tafuta na uhariri kigezo kifuatacho ili kuweka eneo la kuhifadhi.

snapshot_root			 /data/backup/

Pia ondoa mstari wa cmd_ssh ili kuruhusu kuchukua nakala za mbali kupitia SSH. Ili kubatilisha mstari ondoa # iliyo mbele ya mstari ufuatao ili rsnapshot iweze kuhamisha data yako kwa seva mbadala kwa usalama.

cmd_ssh			/usr/bin/ssh

Ifuatayo, unahitaji kuamua ni nakala ngapi za zamani ambazo ungependa kuhifadhi, kwa sababu rsnapshot haikujua ni mara ngapi unataka kuchukua vijipicha. Unahitaji kubainisha ni data ngapi ya kuhifadhi, ongeza vipindi vya kuweka, na ni ngapi kati ya kila moja.

Vizuri, mipangilio chaguo-msingi ni nzuri vya kutosha, lakini bado ningependa uwezeshe muda wa \kila mwezi ili pia upate hifadhi rudufu za muda mrefu. Tafadhali hariri sehemu hii ili ionekane sawa na mipangilio iliyo hapa chini.

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

Jambo moja zaidi unahitaji kuhariri ni ssh_args kutofautisha. Ikiwa umebadilisha Mlango chaguo-msingi wa SSH (22) hadi kitu kingine, unahitaji kutaja nambari hiyo ya mlango wa seva yako ya kuhifadhi nakala ya mbali.

ssh_args		-p 7851

Hatimaye, ongeza saraka zako za ndani na za mbali ambazo ungependa kuhifadhi.

Ikiwa umeamua kuhifadhi saraka zako ndani ya mashine kwenye mashine moja, ingizo la chelezo lingeonekana kama hii. Kwa mfano, ninachukua nakala rudufu ya saraka zangu za /tecmint na /etc.

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

Ikiwa ungependa kuhifadhi saraka za seva za mbali, basi unahitaji kuwaambia rsnapshot seva iko na ni saraka gani unataka kuhifadhi nakala. Hapa ninachukua nakala rudufu ya saraka ya seva yangu ya mbali/nyumbani chini ya saraka ya/data/chelezo kwenye seva ya rsnapshot.

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

Soma Pia:

  1. Jinsi ya Kuhifadhi nakala/Kusawazisha Saraka Kwa Kutumia Zana ya Rsync (Usawazishaji wa Mbali)
  2. Jinsi ya Kuhamisha Faili/Folda Kwa Kutumia Amri ya SCP

Hapa, nitatenga kila kitu, na kisha nitafafanua tu kile ninachotaka kuunga mkono. Ili kufanya hivyo, unahitaji kuunda faili ya kuwatenga.

# vi /data/backup/tecmint.exclude

Kwanza pata orodha ya saraka ambazo ungependa kuhifadhi nakala na uongeze ( - * ) ili kutenga kila kitu kingine. Hii itahifadhi nakala ya kile ulichoorodhesha kwenye faili. Faili yangu ya kuwatenga inaonekana kama ilivyo hapo chini.

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

Kutumia chaguo la kutenganisha faili kunaweza kuwa gumu sana kwa sababu ya utumiaji wa urudiaji wa rsync. Kwa hivyo, mfano wangu hapo juu unaweza kuwa sio kile unachotafuta. Kisha ongeza faili ya kutenga kwenye faili ya rsnapshot.conf.

exclude_file    /data/backup/tecmint.exclude

Hatimaye, unakaribia kumaliza na usanidi wa awali. Hifadhi faili ya usanidi /etc/rsnapshot.conf kabla ya kusonga mbele zaidi. Kuna chaguzi nyingi za kuelezea, lakini hapa kuna faili yangu ya usanidi ya mfano.

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/

Chaguzi zote hapo juu na maelezo ya hoja ni kama ifuatavyo.

  1. config_version 1.2 = Toleo la faili ya usanidi
  2. snapshot_root = Hifadhi rudufu Lengwa la kuhifadhi vijipicha
  3. cmd_cp = Njia ya kunakili amri
  4. cmd_rm = Njia ya kuondoa amri
  5. cmd_rsync = Njia ya kusawazisha
  6. cmd_ssh = Njia ya SSH
  7. cmd_logger = Njia ya kiolesura cha amri ya ganda kwa syslog
  8. cmd_du = Njia ya amri ya matumizi ya diski
  9. interval hourly = Ni nakala ngapi za kila saa za kuhifadhi.
  10. muda kila siku = Ni hifadhi ngapi za kila siku za kuweka.
  11. muda wa wiki = Ni nakala ngapi za wiki za kuweka.
  12. interval monthly = Ni hifadhi ngapi za kila mwezi za kuweka.
  13. ssh_args = Hoja za hiari za SSH, kama vile mlango tofauti (-p )
  14. verbose = Inajieleza
  15. loglevel = Inajieleza
  16. logfile = Njia ya faili ya kumbukumbu
  17. exclude_file = Njia ya kutenga faili (itafafanuliwa kwa undani zaidi)
  18. rsync_long_args = Hoja ndefu za kupitisha kwa rsync
  19. lockfile = Inajieleza
  20. chelezo = Njia kamili ya kile cha kucheleza ikifuatiwa na njia ya uwekaji.

Hatua ya 4: Thibitisha Usanidi wa Rsnapshot

Mara tu unapomaliza usanidi wako wote, ni wakati wake wa kuthibitisha kuwa kila kitu hufanya kazi kama inavyotarajiwa. Tekeleza amri ifuatayo ili kuthibitisha kuwa usanidi wako una syntax sahihi.

# rsnapshot configtest

Syntax OK

Ikiwa kila kitu kitasanidiwa kwa usahihi, utapokea ujumbe wa \Sintaksia sawa. Ukipata ujumbe wowote wa hitilafu, hiyo inamaanisha unahitaji kusahihisha hitilafu hizo kabla ya kutekeleza rsnapshot.

Kisha, fanya jaribio kwenye mojawapo ya picha ili kuhakikisha kuwa tunatoa matokeo sahihi. Tunachukua kigezo cha saa kufanya jaribio kwa kutumia -t (test) hoja. Amri hii iliyo hapa chini itaonyesha orodha ya vitenzi vya mambo ambayo itafanya, bila kufanya hivyo.

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

Kumbuka: Amri iliyo hapo juu inaambia rsnapshot kuunda nakala ya saa. Kwa kweli huchapisha maagizo ambayo itafanya tutakapoitekeleza.

Hatua ya 5: Kuendesha Muhtasari Manually

Baada ya kuthibitisha matokeo yako, unaweza kuondoa \-t chaguo ili kutekeleza amri kweli.

# rsnapshot hourly

Amri iliyo hapo juu itaendesha hati ya chelezo na usanidi wote ambao tuliongeza kwenye faili ya rsnapshot.conf na kuunda saraka ya chelezo na kisha kuunda muundo wa saraka chini yake ambao hupanga faili zetu. Baada ya kutekeleza amri hapo juu, unaweza kuthibitisha matokeo kwa kwenda kwenye saraka ya chelezo na kuorodhesha muundo wa saraka kwa kutumia ls -l amri kama inavyoonyeshwa.

# cd /data/backup
# ls -l

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

Hatua ya 6: Kuendesha Mchakato otomatiki

Ili kufanya mchakato kiotomatiki, unahitaji kuratibu rsnapshot kuendeshwa kwa vipindi fulani kutoka kwa Cron. Kwa chaguo-msingi, rsnapshot huja na faili ya cron chini ya /etc/cron.d/rsnapshot, ikiwa haipo unda moja na uongeze mistari ifuatayo kwake.

Kwa kanuni chaguomsingi hutolewa maoni, kwa hivyo unahitaji kuondoa \# mbele ya sehemu ya kuratibu ili kuwezesha thamani hizi.

# 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

Acha nieleze haswa, sheria za cron hapo juu hufanya nini:

  1. Hufanya kazi kila baada ya saa 4 na kuunda saraka ya kila saa chini ya saraka ya /chelezo.
  2. Hufanya kazi kila siku saa 3:30 asubuhi na kuunda saraka ya kila siku chini ya saraka ya /chelezo.
  3. Huendeshwa kila wiki kila Jumatatu saa 3:00 asubuhi na kuunda saraka ya kila wiki chini ya saraka ya /chelezo.
  4. Hufanya kazi kila mwezi saa 2:30 asubuhi na kuunda saraka ya kila mwezi chini ya saraka ya /chelezo.

Ili kuelewa vizuri jinsi sheria za cron zinavyofanya kazi, napendekeza usome nakala yetu inayoelezea.

  1. Mifano 11 ya Upangaji wa Cron

Hatua ya 7: Ripoti za muhtasari

Rsnapshot hutoa hati ndogo ya Perl ya kuripoti ambayo inakutumia arifa ya barua pepe na maelezo yote ya kile kilichotokea wakati wa kuhifadhi nakala yako ya data. Ili kusanidi hati hii, unahitaji kunakili hati mahali fulani chini ya /usr/local/bin na kuifanya itekelezwe.

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

Kisha, ongeza kigezo cha -stats katika faili yako ya rsnapshot.conf kwenye sehemu ya hoja ndefu ya rsync.

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

Sasa hariri sheria za crontab ambazo ziliongezwa hapo awali na upigie simu hati ya rsnapreport.pl ili kupitisha ripoti kwa anwani maalum ya barua pepe.

# 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 

Mara tu unapoongeza maingizo hapo juu kwa usahihi, utapata ripoti kwa anwani yako ya barua pepe sawa na hapa chini.

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

Viungo vya Marejeleo

  1. ukurasa wa mwanzo wa picha

Hiyo ni kwa sasa, ikiwa shida yoyote itatokea wakati wa usakinishaji nipe maoni. Hadi wakati huo, endelea kufuatilia TecMint kwa makala zaidi ya kuvutia kuhusu ulimwengu wa chanzo huria.