Rsnapshot (Rsync esasly) - Linux üçin ýerli/uzakdaky faýl ulgamynyň ätiýaçlyk hyzmaty


rsnapshot açyk çeşme ýerli/uzakdaky faýl ulgamynyň ätiýaçlyk programmasy Perl dilinde ýazyldy, Rsync we SSH programmasynyň Linux/Unix faýl ulgamlarynyň yzygiderli ätiýaçlyk nusgalaryny döretmek, şol bir wagtyň özünde diňe bir doly ätiýaçlyk ýerini we tapawudyny döretmek üçin güýjünden peýdalanýan Perl dilinde ýazyldy. we şol ätiýaçlyk nusgalary dürli diskde, daşarky USB taýagynda, NFS gurnalan diskde ýa-da tor arkaly SSH arkaly başga bir enjamda saklaň.

Bu makala, her sagat, gündelik, hepdelik we aýlyk ýerli ätiýaçlyk nusgalaryny, şeýle hem uzakdaky ätiýaçlyk nusgalaryny döretmek üçin rsnapshot-y nädip gurmalydygyny, gurnamalydygyny we ulanmalydygyny görkezer. Bu makaladaky ähli ädimleri ýerine ýetirmek üçin kök ulanyjy bolmaly.

1-nji ädim: Linux-da Rsnapshot ätiýaçlyk nusgasyny gurmak

“Red Hat” we “Debian” esasly paýlamalary ulanýan bolsaňyz, “Yum” we “APT” ulanyp, rsnapshot gurmak birneme tapawutlanyp biler.

Ilki bilen EPEL atly üçünji tarap ammaryny gurmaly we işletmeli bolarsyňyz. RHEL/CentOS ulgamlaryňyzyň aşagynda gurmak we işletmek üçin aşakdaky baglanyşyga eýeriň. Fedora ulanyjylary ýörite ammar konfigurasiýalaryny talap etmeýärler.

  1. RHEL/CentOS 6/5/4
  2. EPEL ammaryny guruň we işlediň

Bir zatlar gurnanyňyzdan soň, görkezilişi ýaly buýruk setirinden rsnapshot guruň.

# yum install rsnapshot

Düzgüne görä, rsnapshot Ubuntu ammarlaryna girýär, şonuň üçin ony görkezilişi ýaly apt-get buýrugy bilen gurup bilersiňiz.

# apt-get install rsnapshot

2-nji ädim: SSH paroly az girişi gurmak

Uzakdaky Linux serwerleriniň ätiýaçlyk nusgasyny almak üçin, rsnapshot ätiýaçlyk serweriňiz parolsyz SSH arkaly birigip biler. Muny amala aşyrmak üçin rsnapshot serwerinde tassyklamak üçin SSH açyk we şahsy açarlary döretmeli bolarsyňyz. Rsnapshot ätiýaçlyk serweriňizde açyk we şahsy açarlary döretmek üçin aşakdaky baglanyşyga eýeriň.

  1. SSH Keygen ulanyp SSH parolsyz giriş dörediň

3-nji ädim: Rsnapshot sazlamak

Indi rsnapshot konfigurasiýa faýlyna käbir parametrleri redaktirlemeli we goşmaly bolarsyňyz. Vs ýa-da nano redaktory bilen rsnapshot.conf faýly açyň.

# vi /etc/rsnapshot.conf

Ondan soň ähli ätiýaçlyk nusgalaryňyzy saklamak isleýän ätiýaçlyk katalogyňyzy dörediň. Meniň ýagdaýymda ätiýaçlyk bukjanyň ýerleşýän ýeri \/data/backup /. Thetiýaçlyk ýerini kesgitlemek üçin aşakdaky parametrleri gözläň we redaktirläň.

snapshot_root			 /data/backup/

Şeýle hem SSH-den uzakdan ätiýaçlyk nusgalaryny almaga mümkinçilik berýän “cmd_ssh” setirini açyň. Çyzgydan çykmak üçin, rsnapshot maglumatlaryňyzy ätiýaçlyk serwere ygtybarly geçirip biler ýaly, aşakdaky setiriň öňündäki # aýyryň.

cmd_ssh			/usr/bin/ssh

Ondan soň, näçe köne ätiýaçlyk nusgasyny saklamak isleýändigiňizi kesgitlemeli, sebäbi rsnapshot näçe gezek surata düşmek isleýändigiňizi bilmeýärdi. Näçe maglumat tygşytlamalydygyny, saklamak üçin aralyklary goşmalydygyny we hersinden näçesini görkezmelidigini görkezmeli.

Dogry, deslapky sazlamalar ýeterlik derejede gowy, ýöne şonda-da uzak möhletli ätiýaçlyk nusgalarynyň bolmagy üçin\aýlyk aralygy açmagyňyzy isleýärin. Bu bölümi aşakdaky sazlamalara meňzeş görnüşde redaktirlemegiňizi haýyş edýäris.

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

Redaktirlemeli ýene bir zat, “ssh_args” üýtgeýjisi. Adaty SSH Portuny (22) başga bir zada üýtgeden bolsaňyz, uzakdaky ätiýaçlyk serweriňiziň port belgisini görkezmeli.

ssh_args		-p 7851

Ahyrynda, ätiýaçlyk etmek isleýän ýerli we uzakdaky ätiýaçlyk kataloglaryňyzy goşuň.

Directorieserli kataloglaryňyzy şol bir enjamda ätiýaçlandyrmak kararyna gelen bolsaňyz, ätiýaçlyk ýazgy şeýle bolar. Mysal üçin,/tecmint we/etc kataloglarymyň ätiýaçlyk nusgasyny alýaryn.

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

Uzakdaky serwer kataloglarynyň ätiýaçlyk nusgasyny almak isleseňiz, serweriň nirededigini we haýsy kataloglary ätiýaçlandyrmak isleýändigiňizi rsnapshot-a aýtmaly. Ine, men rsnapshot serwerindäki “/ data/backup” katalogynyň uzakdaky serweriniň “/ home” katalogynyň ätiýaçlyk nusgasyny alýaryn.

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

Şeýle hem okaň:

  1. Rsync (Uzakdan sinhronlamak) guralyny ulanyp, kataloglary nädip ätiýaçlamaly/sinhronlamaly
  2. SCP buýrugyny ulanyp faýllary/bukjalary nädip geçirmeli

Ynha, men hemme zady aýyrjak, soň diňe ätiýaçlyk etmek isleýän zadymy kesgitlärin. Munuň üçin aýrylan faýl döretmeli.

# vi /data/backup/tecmint.exclude

Ilki bilen ätiýaçlyk etmek isleýän kataloglaryňyzyň sanawyny alyň we beýleki zatlary aýyrmak üçin (- *) goşuň. Bu diňe faýlda görkezen zatlaryňyzy ätiýaçlandyrar. Aýyrylan faýlym aşakdaky ýaly görünýär.

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

Aýyrmak faýly opsiýasyny ulanmak rsync gaýtalanmagy sebäpli gaty kyn bolup biler. Şeýlelik bilen, ýokardaky mysalym siziň gözleýän zadyňyz bolup bilmez. Ondan soň aýyrmak faýlyny rsnapshot.conf faýlyna goşuň.

exclude_file    /data/backup/tecmint.exclude

Ahyrynda, başlangyç konfigurasiýa bilen tas gutardyňyz. Has öňe gitmezden ozal “/etc/rsnapshot.conf” konfigurasiýa faýlyny ýazdyryň. Düşündirmek üçin köp wariant bar, ýöne ine meniň nusga konfigurasiýa faýlym.

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/

Aboveokardaky ähli wariantlar we argument düşündirişleri aşakdakylar:

  1. config_version 1.2=Sazlama faýl wersiýasy
  2. snapshot_root=Suratlaryň suratlaryny saklamak üçin ätiýaçlyk nokady
  3. cmd_cp=Buýrugy göçürmegiň ýoly
  4. cmd_rm=Buýrugy aýyrmak üçin ýol
  5. cmd_rsync=rsync-a barýan ýol
  6. cmd_ssh=SSH-e barýan ýol
  7. cmd_logger=syslog-a gabyk buýruk interfeýsine barýan ýol
  8. cmd_du=Diski ulanmak buýrugy üçin ýol
  9. aralyk sagatlyk=Näçe sagat ätiýaçlyk saklamaly.
  10. gündelik aralyk=Her gün näçe ätiýaçlyk saklamaly.
  11. aralyk hepdelik=Näçe hepdelik ätiýaçlyk saklamaly.
  12. aralyk aýlyk aralyk=Näçe aýlyk ätiýaçlyk saklamaly.
  13. ssh_args=Başga port (-p)
  14. ýaly goşmaça SSH argumentleri
  15. verbose=Öz-özüňi düşündirmek
  16. loglevel=Öz-özüňi düşündirmek
  17. logfile=Logfile barýan ýol
  18. exclude_file=Aýyrmak faýlyna barýan ýol (has jikme-jik düşündiriler)
  19. rsync_long_args=rsync-a geçmek üçin uzyn argumentler
  20. lockfile=Öz-özüňi düşündirmek
  21. ätiýaçlyk=ätiýaçlyk edilmeli zatlaryň doly ýoly, soňra bolsa otnositel ýerleşdiriş ýoly.

4-nji ädim: Rsnapshot konfigurasiýasyny barlaň

Configurationhli konfigurasiýaňyzy ýerine ýetireniňizden soň, hemme zadyň garaşylşy ýaly işleýändigini barlamagyň wagty. Sazlamalaryňyzyň dogry sintaksisiniň bardygyny barlamak üçin aşakdaky buýrugy işlediň.

# rsnapshot configtest

Syntax OK

Everythinghli zat dogry düzülen bolsa,\Sintaksis OK habaryny alarsyňyz. Haýsydyr bir ýalňyş habar alsaňyz, rsnapshot işlemezden ozal şol ýalňyşlary düzetmeli bolarsyňyz.

Ondan soň, dogry netije berýändigimize göz ýetirmek üçin suratlaryň birinde synag geçiriň. -T (test) argumentini ulanyp synag işini geçirmek üçin “sagatlyk” parametrini alýarys. Aşakdaky buýruk, aslynda etmezden, etjek zatlarynyň sanaw sanawyny görkezer.

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

Bellik: aboveokardaky buýruk rsnapshot-a sagatlyk ätiýaçlyk nusgasyny döretmegi aýdýar. Aslynda ýerine ýetirenimizde ýerine ýetirjek buýruklary çap edýär.

5-nji ädim: Rsnapshoty el bilen işletmek

Netijeleriňizi barlanyňyzdan soň buýrugy hakykatdanam işletmek üçin\- t opsiýasyny aýryp bilersiňiz.

# rsnapshot hourly

Aboveokardaky buýruk, rsnapshot.conf faýlyna goşan ähli konfigurasiýamyz bilen ätiýaçlyk skriptini işleder we “ätiýaçlyk” katalogyny döreder, soňra bolsa faýllarymyzy tertipleşdirýän katalog gurluşyny döreder. Aboveokardaky buýrugy ýerine ýetireniňizden soň, ätiýaçlyk katalogyna girip, netijeleri barlap bilersiňiz we görkezilişi ýaly ls -l buýrugyny ulanyp katalog gurluşyny sanap bilersiňiz.

# cd /data/backup
# ls -l

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

6-njy ädim: Amaly awtomatlaşdyrmak

Bu prosesi awtomatlaşdyrmak üçin, “Cron” -dan belli aralyklarda işlemek üçin rsnapshot meýilnamasyny düzmeli. Düzgüne görä, rsnapshot “/etc/cron.d/rsnapshot” aşagyndaky kron faýly bilen gelýär, eger ýok bolsa birini dörediň we oňa aşakdaky setirleri goşuň.

Adaty düzgünler düşündirilýär, şonuň üçin bu bahalary işletmek üçin meýilnama bölüminiň öňündäki\# aýyrmaly.

# 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

Aboveokardaky kron düzgünleriniň näme edýändigini takyk düşündirip bereýin:

  1. Her 4 sagatdan işleýär we/ätiýaçlyk bukjanyň aşagynda bir sagatlyk katalog döredýär.
  2. Her gün irden sagat 3: 30-da işleýär we gündelik/ätiýaçlyk bukjanyň aşagynda gündelik katalog döredýär.
  3. Her hepde duşenbe güni ir sagat 3: 00-da işleýär we/ätiýaçlyk bukjanyň aşagynda hepdelik katalog döredýär.
  4. Her aý irden sagat 2: 30-da işleýär we/ätiýaçlyk bukjanyň aşagynda aýlyk katalog döredýär.

Kron düzgünleriniň işleýşine has gowy düşünmek üçin, beýan edýän makalamyzy okamagyňyzy maslahat berýärin.

  1. 11 Kron meýilnamalaşdyryş mysallary

7-nji ädim: Rsnapshot hasabatlary

Rsnapshot, maglumatlaryň ätiýaçlyk nusgasynda nämeleriň bolup geçendigi barada ähli jikme-jiklikler bilen size e-poçta duýduryşyny iberýän elli sany kiçijik Perl skriptini hödürleýär. Bu skripti gurmak üçin skripti “/ usr/local/bin” astynda bir ýerde göçürip, ýerine ýetirip bolar ýaly etmeli.

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

Ondan soň, rsync-yň uzyn argumentler bölümine “rsnapshot.conf” faýlyňyza “stats” parametrini goşuň.

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

Indi öň goşulan crontab düzgünlerini redaktirläň we hasabatlary görkezilen e-poçta salgysyna geçirmek üçin rsnapreport.pl skriptine jaň ediň.

# 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 

Aboveokardaky ýazgylary dogry goşanyňyzdan soň, aşakdaky ýaly e-poçta salgyňyza hasabat alarsyňyz.

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

Salgylanma baglanyşyklary

  1. rsnapshot baş sahypa

Häzirlikçe, gurnama wagtynda haýsydyr bir mesele ýüze çyksa, maňa teswir ýazyň. Soňra açyk çeşme dünýäsinde has gyzykly makalalar üçin TecMint bilen habarlaşyň.