Rsnapshot (Ibbażat fuq Rsync) - Utilità ta' Backup tas-Sistema ta' Fajl Lokali/Remota għal Linux


rsnapshot hija utilità ta' backup tas-sistema ta' fajls lokali/remota b'sors miftuħ kienet miktuba fil-lingwa Perl li tisfrutta l-qawwa tal-programm Rsync u SSH biex toħloq backups inkrementali skedati ta' sistemi ta' fajls Linux/Unix, filwaqt li tieħu biss l-ispazju ta 'backup wieħed sħiħ flimkien ma' differenzi. u żomm dawk il-backups fuq drive lokali għal hard drive differenti, USB stick estern, drive immuntat NFS jew sempliċiment fuq in-netwerk għal magna oħra permezz ta 'SSH.

Dan l-artikolu se juri kif tinstalla, twaqqaf u tuża rsnapshot biex toħloq backups lokali inkrementali kull siegħa, kuljum, kull ġimgħa u kull xahar, kif ukoll backups remoti. Biex twettaq il-passi kollha f'dan l-artikolu, trid tkun utent root.

Pass 1: Installazzjoni ta 'Rsnapshot Backup fil-Linux

L-installazzjoni ta’ rsnapshot bl-użu ta’ Yum u APT tista’ tvarja kemmxejn, jekk qed tuża distribuzzjonijiet ibbażati fuq Red Hat u Debian.

L-ewwel ser ikollok tinstalla u tippermetti repożitorju ta 'parti terza msejjaħ EPEL. Jekk jogħġbok segwi l-link hawn taħt biex tinstalla u tattiva taħt is-sistemi RHEL/CentOS tiegħek. L-utenti ta 'Fedora ma jeħtieġu l-ebda konfigurazzjoni ta' repożitorju speċjali.

  1. Installa u Attiva r-Repożitorju EPEL f'RHEL/CentOS 6/5/4

Ladarba ikollok l-affarijiet setup, installa rsnapshot mil-linja tal-kmand kif muri.

# yum install rsnapshot

B'mod awtomatiku, rsnapshot inkluż fir-repożitorji ta 'Ubuntu, sabiex tkun tista' tinstallah billi tuża kmand apt-get kif muri.

# apt-get install rsnapshot

Pass 2: Twaqqif ta' Login SSH mingħajr Password

Biex tagħmel backup ta' servers Linux remoti, is-server ta' backup rsnapshot tiegħek ikun jista' jikkonnettja permezz ta' SSH mingħajr password. Biex twettaq dan, ser ikollok bżonn toħloq ċwievet pubbliċi u privati SSH biex tivverifika fuq is-server rsnapshot. Jekk jogħġbok segwi l-link hawn taħt biex tiġġenera ċwievet pubbliċi u privati fuq is-server tal-backup rsnapshot tiegħek.

  1. Oħloq Login SSH mingħajr Password billi tuża SSH Keygen

Pass 3: Konfigurazzjoni ta 'Rsnapshot

Issa jkollok bżonn teditja u żżid xi parametri fil-fajl tal-konfigurazzjoni rsnapshot. Iftaħ il-fajl rsnapshot.conf b'editur vi jew nano.

# vi /etc/rsnapshot.conf

Sussegwentement toħloq direttorju tal-backup, fejn trid taħżen il-backups kollha tiegħek. Fil-każ tiegħi l-post tad-direttorju tal-backup tiegħi huwa \/data/backup/”. Fittex u editja l-parametru li ġej biex tissettja l-post tal-backup.

snapshot_root			 /data/backup/

Wkoll neħħi l-kumment tal-linja cmd_ssh biex tippermetti li tieħu backups mill-bogħod fuq SSH. Biex tneħħi l-kumment tal-linja neħħi l-# quddiem il-linja li ġejja sabiex rsnapshot ikun jista 'jittrasferixxi d-dejta tiegħek b'mod sigur għal server backup.

cmd_ssh			/usr/bin/ssh

Sussegwentement, għandek bżonn tiddeċiedi kemm backups qodma tixtieq iżżomm, minħabba li rsnapshot ma kellu ebda idea kemm-il darba trid tieħu snapshots. Trid tispeċifika kemm dejta trid tissejvja, żid intervalli li żżomm, u kemm minn kull wieħed.

Ukoll, is-settings default huma tajbin biżżejjed, iżda xorta nixtieq li tattiva l-intervall \kull xahar sabiex inti jista' jkollok ukoll backups għal żmien itwal fis-seħħ. Jekk jogħġbok editja din it-taqsima biex tidher simili għas-settings ta' hawn taħt.

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

Ħaġa oħra li trid teditja hija l-varjabbli ssh_args. Jekk bdilt il-Port SSH default (22) għal xi ħaġa oħra, trid tispeċifika dak in-numru tal-port tas-server ta' backup remot tiegħek.

ssh_args		-p 7851

Fl-aħħarnett, żid id-direttorji tal-backup lokali u remoti tiegħek li trid tagħmel backup.

Jekk iddeċidejt li tagħmel backup tad-direttorji tiegħek lokalment fuq l-istess magna, l-entrata tal-backup tkun tidher bħal din. Pereżempju, qed nieħu backup tad-direttorji tiegħi /tecmint u /etc.

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

Jekk tixtieq tagħmel backup ta' direttorji ta' server remot, imbagħad trid tgħid lir-rsnapshot fejn jinsab is-server u liema direttorji trid tagħmel backup. Hawnhekk qed nieħu backup tad-direttorju /home tas-server remot tiegħi taħt id-direttorju /data/backup fuq is-server rsnapshot.

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

Aqra wkoll:

  1. Kif tagħmel Backup/Sinkronizzazzjoni tad-Diretorji billi tuża Għodda ta' Rsync (sinkronizzazzjoni mill-bogħod)
  2. Kif Titrasferixxi Fajls/Folders billi tuża Kmand SCP

Hawnhekk, ser neskludi kollox, u mbagħad niddefinixxi biss speċifikament dak li rrid nappoġġja. Biex tagħmel dan, għandek bżonn toħloq fajl eskluż.

# vi /data/backup/tecmint.exclude

L-ewwel ikseb il-lista tad-direttorji li trid tagħmel backup u żid ( – * ) biex teskludi kull ħaġa oħra. Dan se jagħmel biss backup dak li elenkat fil-fajl. Il-fajl tal-esklużjoni tiegħi jidher simili għal hawn taħt.

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

L-użu ta 'eskludi l-għażla tal-fajl jista' jkun diffiċli ħafna minħabba l-użu tar-rikorżjoni rsync. Allura, l-eżempju tiegħi ta 'hawn fuq jista' ma jkunx dak li qed tfittex. Sussegwentement żid il-fajl tal-esklużjoni fil-fajl rsnapshot.conf.

exclude_file    /data/backup/tecmint.exclude

Fl-aħħarnett, inti kważi lest bil-konfigurazzjoni inizjali. Issejvja l-fajl tal-konfigurazzjoni “/etc/rsnapshot.conf” qabel ma timxi aktar. Hemm ħafna għażliet biex tispjega, iżda hawnhekk huwa l-kampjun tal-fajl tal-konfigurazzjoni tiegħi.

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/

L-għażliet kollha ta' hawn fuq u l-ispjegazzjonijiet tal-argumenti huma kif ġej:

  1. config_version 1.2 = Verżjoni tal-fajl tal-konfigurazzjoni
  2. snapshot_root = Destinazzjoni tal-Backup biex taħżen snapshots
  3. cmd_cp = Mogħdija għall-kmand tal-kopja
  4. cmd_rm = Mogħdija biex tneħħi l-kmand
  5. cmd_rsync = Mogħdija għal rsync
  6. cmd_ssh = Mogħdija għal SSH
  7. cmd_logger = Passaġġ għall-interface tal-kmand tal-qoxra għal syslog
  8. cmd_du = kmand tal-użu tal-mogħdija tad-diska
  9. intervall kull siegħa = Kemm għandek iżżomm backups fis-siegħa.
  10. intervall kuljum = Kemm għandek iżżomm backups kuljum.
  11. intervall ta' kull ġimgħa = Kemm għandek iżżomm backups fil-ġimgħa.
  12. intervall ta' kull xahar = Kemm għandek iżżomm backups ta' kull xahar.
  13. ssh_args = Argumenti SSH mhux obbligatorji, bħal port differenti (-p )
  14. verbose = Jispjega lilu nnifsu
  15. loglevel = Jispjega lilu nnifsu
  16. logfile = Passaġġ għal logfile
  17. exclude_file = It-triq għall-fajl ta' esklużjoni (se tiġi spjegata f'aktar dettall)
  18. rsync_long_args = Argumenti twal biex jgħaddu lil rsync
  19. lockfile = Jispjega lilu nnifsu
  20. backup = Mogħdija sħiħa għal dak li għandu jsir backup segwit minn mogħdija relattiva tat-tqegħid.

Pass 4: Ivverifika l-Konfigurazzjoni Rsnapshot

Ladarba tkun għamilt il-konfigurazzjoni kollha tiegħek, wasal iż-żmien li tivverifika li kollox jaħdem kif mistenni. Mexxi l-kmand li ġej biex tivverifika li l-konfigurazzjoni tiegħek għandha s-sintassi korretta.

# rsnapshot configtest

Syntax OK

Jekk kollox ikun ikkonfigurat b'mod korrett, tirċievi messaġġ \Syntax OK. Jekk ikollok xi messaġġi ta' żball, dan ifisser li trid tikkoreġi dawk l-iżbalji qabel ma tħaddem rsnapshot.

Sussegwentement, agħmel test run fuq waħda mill-istampa biex tiżgura li qed niġġeneraw riżultati korretti. Nieħdu l-parametru kull siegħa biex nagħmlu ġirja tat-test billi tuża l-argument -t (test). Dan il-kmand ta 'hawn taħt se juri lista verbose ta' l-affarijiet li se tagħmel, mingħajr ma fil-fatt tagħmelhom.

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

Nota: Il-kmand ta 'hawn fuq jgħid lil rsnapshot biex joħloq backup kull siegħa. Fil-fatt jistampa l-kmandi li se jwettaq meta nwettquha tassew.

Pass 5: Tmexxi Rsnapshot manwalment

Wara li tivverifika r-riżultati tiegħek, tista 'tneħħi l-għażla \-t biex tmexxi l-kmand verament.

# rsnapshot hourly

Il-kmand ta 'hawn fuq se jmexxi l-iskrittura tal-backup bil-konfigurazzjoni kollha li żidna fil-fajl rsnapshot.conf u joħloq direttorju backup u mbagħad joħloq l-istruttura tad-direttorju taħtu li torganizza l-fajls tagħna. Wara li taħdem fuq il-kmand, tista 'tivverifika r-riżultati billi tmur fid-direttorju tal-backup u telenka l-istruttura tad-direttorju billi tuża ls -l kmand kif muri.

# cd /data/backup
# ls -l

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

Pass 6: Awtomatizzazzjoni tal-Proċess

Biex awtomat il-proċess, għandek bżonn tiskeda rsnapshot biex titmexxa f'ċerti intervalli minn Cron. B'mod awtomatiku, rsnapshot jiġi mal-fajl cron taħt /etc/cron.d/rsnapshot, jekk ma jeżistix oħloq waħda u żid il-linji li ġejjin miegħu.

B'mod awtomatiku, ir-regoli huma kkummentati, għalhekk trid tneħħi l-\# minn quddiem is-sezzjoni tal-iskedar biex tippermetti dawn il-valuri.

# 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

Ħa nispjega eżattament, x'jagħmlu hawn fuq ir-regoli cron:

  1. Tmexxi kull 4 sigħat u toħloq direttorju kull siegħa taħt direttorju /backup.
  2. Tmexxi kuljum fit-3:30am u toħloq direttorju ta' kuljum taħt /direttorju ta' backup.
  3. Tmexxi kull ġimgħa kull nhar ta' Tnejn fit-3:00am u toħloq direttorju ta' kull ġimgħa taħt direttorju /backup.
  4. Tmexxi kull xahar fis-2:30am u toħloq direttorju ta' kull xahar taħt /direttorju ta' backup.

Biex tifhem aħjar kif jaħdmu r-regoli cron, nissuġġerixxi li taqra l-artiklu tagħna li jiddeskrivi.

  1. 11 Eżempji ta' Skedar Cron

Pass 7: Rapporti Rsnapshot

L-rsnapshot jipprovdi skript Perl ta' rappurtar żgħir innifs li jibgħatlek twissija bl-email bid-dettalji kollha dwar dak li seħħ waqt il-backup tad-dejta tiegħek. Biex issettja dan l-iskript, trid tikkopja l-iskript x'imkien taħt /usr/local/bin u tagħmilha eżekutibbli.

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

Sussegwentement, żid il-parametru “–stats” fil-fajl “rsnapshot.conf” tiegħek mat-taqsima tal-argumenti twal tar-rsync.

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

Issa editja r-regoli tal-crontab li ġew miżjuda qabel u ċempel l-iskrittura rsnapreport.pl biex tgħaddi r-rapporti lill-indirizz elettroniku speċifikat.

# 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 

Ladarba tkun żidt l-entrati ta’ hawn fuq b’mod korrett, ikollok rapport fl-indirizz tal-email tiegħek simili għal hawn taħt.

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

Links ta' Referenza

  1. rsnapshot homepage

Dak hu għalissa, jekk iseħħu xi problemi waqt l-installazzjoni, waqqali kumment. Sa dak iż-żmien ibqa' sintonizzat ma' TecMint għal aktar artikli interessanti dwar id-dinja Open Source.