Rsnapshot (Dabere na Rsync) - Ngwa ndabere Sistemụ Ndabere nke Mpaghara/ Ime Faịlụ maka Linux


rsnapshot bụ ebe mepere emepe/mpaghara faịlụ ndabere faịlụ edere n'asụsụ Perl nke na-erite uru ike nke mmemme Rsync na SSH imepụta, nkwado ndabere nke Linux/Unix faịlụ, ebe naanị na-ewere ohere nke otu nkwado ndabere zuru oke yana ndịiche. ma debe nkwado ndị ahụ na draịvụ mpaghara gaa na draịvụ ike dị iche iche, mkpanaka USB mpụga, draịva etinyere NFS ma ọ bụ naanị na netwọkụ gaa na igwe ọzọ site na SSH.

Edemede a ga-egosipụta otu esi etinye, hazie na iji rsnapshot mepụta mgbakwunye mgbakwunye kwa elekere, kwa ụbọchị, kwa izu na kwa ọnwa, yana nkwado ndabere na mpaghara dịpụrụ adịpụ. Iji mee usoro niile dị n'isiokwu a, ị ga-abụrịrị onye ọrụ mgbọrọgwụ.

Kwụpụ 1: Ịwụnye ndabere Rsnapshot na Linux

Ntinye nke rsnapshot site na iji Yum na APT nwere ike ịdị iche ntakịrị, ma ọ bụrụ na ị na-eji nkesa Red Hat na Debian.

Mbụ, ị ga-arụnye ma mee ka ebe nchekwa ndị ọzọ a na-akpọ EPEL. Biko soro njikọ dị n'okpuru ka ịwụnye ma mee ka n'okpuru sistemụ RHEL/CentOS gị. Ndị ọrụ Fedora anaghị achọ nhazi ebe nchekwa pụrụ iche.

  1. Wụnye ma mee ka ebe nchekwa EPEL rụọ ọrụ na RHEL/CentOS 6/5/4

Ozugbo ị nwetara ihe, wụnye rsnapshot site na ahịrị iwu dị ka egosiri.

# yum install rsnapshot

Site na ndabara, rsnapshot gụnyere na ebe nchekwa Ubuntu, yabụ ị nwere ike tinye ya site na iji apt-nweta iwu dị ka egosiri.

# apt-get install rsnapshot

Kwụpụ 2: Ịtọlite SSH Paswọdu-enweghị Nbanye

Iji kwado sava Linux dịpụrụ adịpụ, ihe nkesa ndabere rsnapshot gị ga-enwe ike ijikọ site na SSH na-enweghị paswọọdụ. Iji mezuo nke a, ị ga-achọ ịmepụta igodo ọha na nke SSH iji chọpụta na sava rsnapshot. Biko soro njikọ dị n'okpuru ka iwepụta igodo ọha na nke nzuzo na sava nchekwa rsnapshot gị.

  1. Mepụta SSH okwuntughe nbanye n'iji SSH Keygen

Kwụpụ 3: Na-ahazi Rsnapshot

Ugbu a, ị ga-achọ idezi ma tinye ụfọdụ paramita na faịlụ nhazi rsnapshot. Mepee faịlụ rsnapshot.conf na vi ma ọ bụ nano editọ.

# vi /etc/rsnapshot.conf

Ọzọ mepụta ndekọ ndabere, ebe ịchọrọ ịchekwa ndabere gị niile. N'ọnọdụ m, ebe nchekwa nchekwa m bụ \/data/ndabere/ Chọọ wee dezie paramita na-esonụ ka ịtọọ ebe ndabere.

snapshot_root			 /data/backup/

Eweghachikwala ahịrị “cmd_ssh” ka ikwe ka iwere ndabere dịpụrụ adịpụ karịa SSH. Iji mebie ahịrị ahụ, wepụ # n'ihu ahịrị na-esonụ ka snapshot wee nwee ike ịnyefe data gị na nchekwa nchekwa.

cmd_ssh			/usr/bin/ssh

Ọzọ, ị ga-ekpebi ole nkwado ndabere na mpaghara ị ga-achọ idowe, n'ihi na snapshot amaghị ugboro ole ịchọrọ ịse foto. Ịkwesịrị ịkọwa ego ole ị ga-echekwa, tinye oge ị ga-edebe, yana ole n'ime nke ọ bụla.

Ọfọn, ntọala ndabara dị mma nke ukwuu, mana m ga-achọ ka ị mee ka nkeji oge kwa ọnwa ka ị nwee ike ịnwe nkwado ndabere ogologo oge. Biko dezie ngalaba a ka ọ dị ka ntọala n'okpuru.

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

Otu ihe ọzọ ịchọrọ dezie bụ mgbanwe ssh_args. Ọ bụrụ na ị gbanweela ndabara SSH Port (22) ka ọ bụrụ ihe ọzọ, ịkwesịrị ịkọwa nọmba ọdụ ụgbọ mmiri nke ihe nkesa na-akwado ime ime gị.

ssh_args		-p 7851

N'ikpeazụ, tinye akwụkwọ ndekọ aha ndabere na mpaghara gị nke ịchọrọ ịkwado.

Ọ bụrụ na ị kpebiela ịkwado akwụkwọ ndekọ aha gị na mpaghara otu igwe, ntinye nkwado ga-adị ka nke a. Dịka ọmụmaatụ, ana m ewere ndabere nke akwụkwọ ndekọ aha m/tecmint na/wdg.

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

Ọ bụrụ na ị ga-achọ ndabere akwụkwọ ndekọ aha ihe nkesa dịpụrụ adịpụ, mgbe ahụ ịkwesịrị ịgwa rsnapshot ebe ihe nkesa dị na akwụkwọ ndekọ aha ịchọrọ ịkwado. N'ebe a, m na-ewere nkwado ndabere na mpaghara/ụlọ ihe nkesa dịpụrụ adịpụ n'okpuru ndekọ /data/ndabere na sava rsnapshot.

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

Gụkwuo:

  1. Otu esi eme ndabere/mmekọrịta akwụkwọ ndekọ aha site na iji ngwa Rsync (Mmekọrịta Remote)
  2. Otu esi enyefe faịlụ/nchekwa site na iji iwu SCP

N'ebe a, m ga-ewepụ ihe niile, wee kọwaa naanị ihe m chọrọ ịkwado. Iji mee nke a, ịkwesịrị ịmepụta faịlụ ewepu.

# vi /data/backup/tecmint.exclude

Buru ụzọ nweta ndepụta ndekọ aha nke ịchọrọ ịkwado ma tinye (- * ) ka ewepu ihe ọ bụla ọzọ. Nke a ga-akwado naanị ihe ị depụtara na faịlụ ahụ. Faịlụ mwepu m dị ka nke dị n'okpuru.

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

Iji nhọrọ ewepu faịlụ nwere ike ịdị aghụghọ n'ihi iji rsync recursion. Yabụ, ihe atụ m dị n'elu nwere ike ọ gaghị abụ ihe ị na-achọ. Ọzọ tinye faịlụ ewepu na faịlụ rsnapshot.conf.

exclude_file    /data/backup/tecmint.exclude

N'ikpeazụ, ọ fọrọ nke nta ka ị gwụchaa na nhazi mbụ. Chekwaa faịlụ nhazi /etc/rsnapshot.conf tupu ịga n'ihu. Enwere ọtụtụ nhọrọ ịkọwapụta, mana nke a bụ faịlụ nhazi nhazi m.

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/

Nhọrọ niile na nkọwa arụmụka bụ ndị a:

  1. config_version 1.2 = Ụdị faịlụ nhazi
  2. snapshot_root = Ebe ndabere iji chekwaa snapshots
  3. cmd_cp = Ụzọ iji detuo iwu
  4. cmd_rm = Ụzọ iji wepụ iwu
  5. cmd_rsync = Ụzọ rsync
  6. cmd_ssh = Ụzọ na-aga SSH
  7. cmd_logger = Uzo a na-ebuga ntughari iwu ka syslog
  8. cmd_du = Iwu iji diski eme ihe
  9. n'oge elekere kwa elekere = Ogologo elekere ole ka ị ga-edowe.
  10. n'etiti kwa ụbọchị = Ndabere ole kwa ụbọchị ị ga-edowe.
  11. interval kwa izu = Ego ole nkwado kwa izu ka a ga-edowe.
  12. n'etiti kwa ọnwa = Ndabere ọnwa ole ka a ga-edowe.
  13. ssh_args = Arụmụka SSH nhọrọ, dị ka ọdụ ụgbọ mmiri dị iche (-p )
  14. verbose = Nkọwa onwe
  15. loglevel = Nkọwa onwe
  16. logfile = Ụzọ na-abanye faịlụ
  17. exclude_file = Ụzọ nke faịlụ ewepụrụ (a ga-akọwa ya n'ụzọ zuru ezu)
  18. rsync_long_args = Ogologo arụmụka ịgafe na rsync
  19. lockfile = Nkọwa onwe
  20. ndabere = Ụzọ zuru oke maka ihe a ga-akwado ya na ụzọ ntinye n'ụzọ ikwu.

Kwụpụ 4: Nyochaa nhazi Rsnapshot

Ozugbo ịmechara nhazi gị niile, ọ bụ oge iji nyochaa na ihe niile na-arụ ọrụ dịka a tụrụ anya ya. Gbaa iwu na-esonụ iji chọpụta na nhazi gị nwere syntax ziri ezi.

# rsnapshot configtest

Syntax OK

Ọ bụrụ na ahaziri ihe niile nke ọma, ị ga-enweta ozi \Syntax OK Ọ bụrụ na ịnweta ozi njehie ọ bụla, nke ahụ pụtara na ị ga-edozi njehie ndị ahụ tupu ịmee snapshot.

Na-esote, mee nnwale na-agba ọsọ n'otu n'ime foto foto iji jide n'aka na anyị na-arụpụta nsonaazụ ziri ezi. Anyị na-ewere oke “hourly” iji mee nnwale nnwale site na iji arụmụka -t (ule). Iwu a dị n'okpuru ga-egosipụta ndepụta verbose nke ihe ọ ga-eme, n'emeghị ha n'ezie.

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

Mara: Iwu a dị n'elu na-agwa snapshot ka imepụta nkwado ndabere “hourly”. Ọ na-ebipụta iwu ndị ọ ga-eme mgbe anyị na-eme ya n'ezie.

Kwụpụ 5: Iji aka na-agba Rsnapshot

Mgbe ị nwetachara nsonaazụ gị, ị nwere ike wepu nhọrọ \-t iji mee iwu ahụ n'ezie.

# rsnapshot hourly

Iwu a dị n'elu ga-agba ọsọ edemede ndabere na nhazi niile anyị gbakwunyere na faịlụ rsnapshot.conf wee mepụta ndekọ ndabere wee mepụta usoro ndekọ aha n'okpuru ya nke na-ahazi faịlụ anyị. Mgbe ịmechara iwu dị n'elu, ị nwere ike nyochaa nsonaazụ ya site na ịga na ndekọ ndabere wee depụta usoro ndekọ aha site na iji iwu ls -l dị ka egosiri.

# cd /data/backup
# ls -l

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

Kwụpụ 6: Megharịa usoro ahụ

Iji megharịa usoro ahụ, ịkwesịrị ịhazi rsnapshot ka a ga-agba ọsọ na oge ụfọdụ site na Cron. Site na ndabara, rsnapshot na-abịa na faịlụ cron n'okpuru /etc/cron.d/rsnapshot, ma ọ bụrụ na ọ dịghị, mepụta otu ma tinye ahịrị ndị a na ya.

Site na iwu ndabara, a na-ekwu okwu, yabụ ịkwesịrị iwepu \# n'ihu ngalaba nhazi iji mee ka ụkpụrụ ndị a nwee ike.

# 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

Ka m kọwaa nke ọma, ihe n'elu iwu cron na-eme:

  1. Na-agba ọsọ awa anọ ọ bụla wee mepụta ndekọ aha kwa elekere n'okpuru /ndekọ ndabere.
  2. Na-agba kwa ụbọchị n'elekere 3:30 nke ụtụtụ wee mepụta ndekọ aha kwa ụbọchị n'okpuru /ndekọ ndabere.
  3. Na-agba ọsọ kwa izu na Mọnde ọ bụla n'elekere 3:00 nke ụtụtụ wee mepụta akwụkwọ ndekọ aha kwa izu n'okpuru /ndekọ ndabere.
  4. Na-agba kwa ọnwa n'elekere 2:30 nke ụtụtụ wee mepụta akwụkwọ ndekọ aha kwa ọnwa n'okpuru /ndekọ ndabere.

Iji ghọta nke ọma otú iwu cron si arụ ọrụ, ana m atụ aro ka ị gụọ akụkọ anyị na-akọwa.

  1. 11 Ihe Nlereanya Ịhazi oge cron

Kwụpụ 7: Akụkọ Rsnapshot

rsnapshot na-enye obere akwụkwọ akụkọ Perl na-ezitere gị ozi email yana nkọwa niile gbasara ihe mere n'oge ndabere data gị. Iji hazie edemede a, ịkwesịrị idetuo edemede ahụ ebe n'okpuru /usr/local/bin wee mee ka ọ rụọ ọrụ.

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

Na-esote, tinye paramita -stats na faịlụ rsnapshot.conf gị na mpaghara ogologo arụmụka rsync.

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

Ugbu a dezie iwu crontab nke agbakwunyere na mbụ wee kpọọ edemede rsnapreport.pl ka ị nyefee akụkọ ahụ na adreesị ozi-e akọwapụtara.

# 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 

Ozugbo itinyechara ndenye n'elu nke ọma, ị ga-enweta akụkọ na adreesị ozi-e gị nke dị n'okpuru.

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

Njikọ ntụaka

  1. peeji nke snapshot

Nke ahụ bụ ya ugbu a, ọ bụrụ na nsogbu ọ bụla emee n'oge ntinye, hapụ m okwu. Ruo mgbe ahụ nọrọ na nche na TecMint maka akụkọ ndị ọzọ na-atọ ụtọ na ụwa mepere emepe.