Rsnapshot (pamatojoties uz Rsync) - vietējā/attālā failu sistēmas dublēšanas utilīta Linux
rsnapshot ir atvērtā koda vietējās/attālās failu sistēmas dublēšanas utilīta, kas tika uzrakstīta Perl valodā, un tā izmantoja Rsync un SSH programmas spēku, lai izveidotu plānotus pakāpeniskus Linux/Unix failu sistēmu dublējumus, vienlaikus aizņemot tikai vienu pilnu dublējumu un atšķirības un saglabājiet šīs dublējumkopijas lokālajā diskā citā cietajā diskā, ārējā USB zibatmiņā, NFS piestiprinātā diskā vai vienkārši tīklā uz citu mašīnu, izmantojot SSH.
Šajā rakstā tiks parādīts, kā instalēt, iestatīt un izmantot rsnapshot, lai izveidotu papildu stundas, dienas, nedēļas un mēneša vietējās dublējumkopijas, kā arī attālās dublējumkopijas. Lai veiktu visas šī raksta darbības, jums ir jābūt root lietotājam.
1. darbība: Rsnapshot Backup instalēšana Linux
Rsnapshot instalēšana, izmantojot Yum un APT, var nedaudz atšķirties, ja izmantojat Red Hat un Debian balstītus izplatījumus.
Vispirms jums būs jāinstalē un jāiespējo trešās puses krātuve ar nosaukumu EPEL. Lūdzu, sekojiet zemāk esošajai saitei, lai instalētu un iespējotu RHEL/CentOS sistēmās. Fedora lietotājiem nav nepieciešamas īpašas krātuves konfigurācijas.
- Instalējiet un iespējojiet EPEL repozitoriju RHEL/CentOS 6/5/4
Kad esat iestatījis lietas, instalējiet rsnapshot no komandrindas, kā parādīts.
# yum install rsnapshot
Pēc noklusējuma rsnapshot ir iekļauts Ubuntu krātuvēs, tāpēc to varat instalēt, izmantojot komandu apt-get, kā parādīts.
# apt-get install rsnapshot
2. darbība: iestatiet pieteikšanos bez SSH paroles
Lai dublētu attālos Linux serverus, jūsu rsnapshot rezerves serveris varēs izveidot savienojumu, izmantojot SSH, bez paroles. Lai to paveiktu, jums būs jāizveido SSH publiskās un privātās atslēgas, lai autentificētos rsnapshot serverī. Lūdzu, sekojiet zemāk esošajai saitei, lai ģenerētu publiskās un privātās atslēgas savā rsnapshot dublējuma serverī.
- Izveidojiet SSH pieteikšanos bez paroles, izmantojot SSH Keygen
3. darbība: Rsnapshot konfigurēšana
Tagad jums būs jārediģē un jāpievieno daži parametri rsnapshot konfigurācijas failam. Atveriet failu rsnapshot.conf ar vi vai nano redaktoru.
# vi /etc/rsnapshot.conf
Pēc tam izveidojiet dublējuma direktoriju, kurā vēlaties saglabāt visus dublējumkopijas. Manā gadījumā mana rezerves direktorija atrašanās vieta ir “/ data/backup /”. Lai iestatītu dublējuma atrašanās vietu, meklējiet un rediģējiet šo parametru.
snapshot_root /data/backup/
Atzīmējiet arī rindiņu “cmd_ssh”, lai ļautu veikt attālinātas dublējumkopijas, izmantojot SSH. Lai komentētu rindu, noņemiet “#” nākamās rindas priekšā, lai rsnapshot varētu droši pārsūtīt jūsu datus uz rezerves serveri.
cmd_ssh /usr/bin/ssh
Tālāk jums jāizlemj, cik veco dublējumu vēlaties saglabāt, jo rsnapshot nebija ne jausmas, cik bieži vēlaties veikt momentuzņēmumus. Jums jānorāda, cik daudz datu jāsaglabā, jāpievieno saglabājamie intervāli un cik no katra.
Nu, noklusējuma iestatījumi ir pietiekami labi, bet tomēr es vēlētos, lai jūs iespējotu “ikmēneša” intervālu, lai jūs varētu arī ievietot ilgāka laika dublējumus. Lūdzu, rediģējiet šo sadaļu, lai tā izskatās līdzīga tālāk norādītajiem iestatījumiem.
######################################### # 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
Vēl viena rediģējamā lieta ir mainīgais “ssh_args”. Ja noklusējuma SSH portu (22) esat mainījis uz kaut ko citu, jums jānorāda attālinātās dublēšanas servera porta numurs.
ssh_args -p 7851
Visbeidzot, pievienojiet vietējos un attālās dublējuma direktorijus, kurus vēlaties dublēt.
Ja esat nolēmis dublēt direktorijus lokāli tajā pašā mašīnā, dublējuma ieraksts izskatīsies šādi. Piemēram, es veicu savu/tecmint un/utt direktoriju dublējumu.
backup /tecmint/ localhost/ backup /etc/ localhost/
Ja vēlaties dublēt attālā servera direktorijus, jums jāsaka rsnapshot, kur atrodas serveris un kurus direktorijus vēlaties dublēt. Šeit es veicu sava attālā servera “/ home” direktorija dublējumu direktorijā “/ data/backup” rsnapshot serverī.
backup [email :/home/ /data/backup/
Lasīt arī:
- Kā dublēt/sinhronizēt direktorijus, izmantojot Rsync (attālās sinhronizācijas) rīku
- Kā pārsūtīt failus/mapes, izmantojot komandu SCP
Šeit es izslēdzu visu un tad tikai konkrēti definēju, ko vēlos dublēt. Lai to izdarītu, jums jāizveido izslēgšanas fails.
# vi /data/backup/tecmint.exclude
Vispirms iegūstiet to direktoriju sarakstu, kurus vēlaties dublēt, un pievienojiet (- *), lai izslēgtu visu pārējo. Tas dublēs tikai to, ko norādījāt failā. Mans izslēgšanas fails izskatās līdzīgs zemāk redzamajam.
+ /boot + /data + /tecmint + /etc + /home + /opt + /root + /usr - /usr/* - /var/cache + /var - /*
Opcijas izslēgt failu izmantošana var būt ļoti sarežģīta, jo tiek izmantota rsync rekursija. Tātad, mans iepriekš minētais piemērs var nebūt tas, ko meklējat. Pēc tam pievienojiet izslēgšanas failu failam rsnapshot.conf.
exclude_file /data/backup/tecmint.exclude
Visbeidzot, jūs esat gandrīz pabeidzis sākotnējo konfigurāciju. Pirms pārvietošanās, saglabājiet konfigurācijas failu “/etc/rsnapshot.conf”. Ir daudz iespēju izskaidrot, bet šeit ir mans konfigurācijas faila paraugs.
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/
Visas iepriekš minētās iespējas un argumentu skaidrojumi ir šādi:
- config_version 1.2 = konfigurācijas faila versija
- snapshot_root = Rezerves galamērķis momentuzņēmumu glabāšanai
- cmd_cp = Komandas kopēšanas ceļš
- cmd_rm = Ceļš komandas noņemšanai
- cmd_rsync = Ceļš uz sinhronizāciju
- cmd_ssh = Ceļš uz SSH
- cmd_logger = Ceļš uz čaulu komandu interfeiss uz syslog
- cmd_du = Ceļš uz diska lietojumu
- interval hourly = Cik stundu dublējumkopiju saglabāt.
- intervāls katru dienu = cik ikdienas dublējumkopiju glabāt.
- intervāls nedēļā = cik iknedēļas dublējumu jāglabā.
- intervāls mēnesī = cik mēneša dublējumu glabāt.
- ssh_args = Neobligāti SSH argumenti, piemēram, cits ports (-p)
- verbose = Pašsaprotams
- loglevel = Pašsaprotams
- logfile = ceļš uz žurnāla failu
- izslēgt_fails = Ceļš uz izslēgšanas failu (tiks skaidrots sīkāk)
- rsync_long_args = Gari argumenti, kas jānodod rsync
- lockfile = Pašsaprotams
- backup = Pilns ceļš uz dublējamo, kam seko relatīvais izvietojuma ceļš.
4. darbība. Pārbaudiet Rsnapshot konfigurāciju
Kad esat pabeidzis visu konfigurāciju, ir pienācis laiks pārbaudīt, vai viss darbojas, kā paredzēts. Palaidiet šo komandu, lai pārbaudītu, vai konfigurācijā ir pareiza sintakse.
# rsnapshot configtest Syntax OK
Ja viss ir pareizi konfigurēts, jūs saņemsit ziņojumu “Sintakse OK”. Ja tiek parādīti kādi kļūdu ziņojumi, tas nozīmē, ka pirms rsnapshot palaišanas šīs kļūdas ir jāizlabo.
Pēc tam veiciet testa braucienu vienā no momentuzņēmumiem, lai pārliecinātos, ka mēs ģenerējam pareizus rezultātus. Mēs veicam parametru “stundā”, lai veiktu testa braucienu, izmantojot -t (testa) argumentu. Šajā zemāk redzamajā komandā tiks parādīts daudzveidīgs saraksts ar lietām, ko tas darīs, tos faktiski nedarot.
# 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/
Piezīme. Iepriekš minētā komanda liek rsnapshot izveidot “stundas” dublējumu. Tas faktiski izdrukā komandas, kuras tas izpildīs, kad mēs to patiešām izpildīsim.
5. solis: Manuāli palaist Rsnapshot
Pēc rezultātu pārbaudīšanas varat noņemt opciju “-t”, lai patiešām palaistu komandu.
# rsnapshot hourly
Iepriekš minētā komanda palaidīs dublējuma skriptu ar visu konfigurāciju, ko pievienojām failā rsnapshot.conf, izveidos direktoriju “backup” un pēc tam zem tā izveidos direktoriju struktūru, kas sakārto mūsu failus. Pēc komandas palaišanas jūs varat pārbaudīt rezultātus, dodoties uz dublējuma direktoriju, un direktoriju struktūru sarakstā izmantojiet komandu ls -l, kā parādīts.
# cd /data/backup # ls -l total 4 drwxr-xr-x 3 root root 4096 Oct 28 09:11 hourly.0
6. solis: procesa automatizēšana
Lai automatizētu procesu, jums jāplāno rsnapshot palaist noteiktos laika intervālos no Cron. Pēc noklusējuma rsnapshot nāk ar cron failu sadaļā “/etc/cron.d/rsnapshot”, ja tāda nav, izveidojiet to un pievienojiet tai šādas rindas.
Pēc noklusējuma kārtulas tiek komentētas, tāpēc, lai iespējotu šīs vērtības, plānošanas sadaļas priekšā ir jānoņem “#”.
# 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
Ļaujiet man precīzi paskaidrot, ko dara iepriekš minētie noteikumi:
- Darbojas ik pēc 4 stundām un izveido stundas direktoriju zem/rezerves direktorija.
- Darbojas katru dienu pulksten 3:30 un izveido ikdienas direktoriju zem/rezerves direktorija.
- Darbojas katru nedēļu katru pirmdienu pulksten 3:00 no rīta un izveidojiet iknedēļas direktoriju zem/rezerves direktorija.
- Darbojas katru mēnesi plkst. 2.30 un izveido ikmēneša direktoriju zem/rezerves direktorija.
Lai labāk saprastu, kā darbojas cron noteikumi, iesaku izlasīt mūsu rakstu, kurā aprakstīts.
- 11 piemēru plānošanas piemēri
7. darbība: Rsnapshot atskaites
Rsnapshot nodrošina izveicīgu nelielu atskaites Perl skriptu, kas nosūta jums e-pasta brīdinājumu ar visu informāciju par to, kas notika datu dublēšanas laikā. Lai iestatītu šo skriptu, skripts ir jākopē kaut kur zem “/ usr/local/bin” un jādara izpildāms.
# cp /usr/share/doc/rsnapshot-1.3.1/utils/rsnapreport.pl /usr/local/bin # chmod +x /usr/local/bin/rsnapreport.pl
Pēc tam pievienojiet parametru “–stats” failā “rsnapshot.conf” rsync garo argumentu sadaļā.
vi /etc/rsnapshot.conf
rsync_long_args --stats --delete --numeric-ids --delete-excluded
Tagad rediģējiet iepriekš pievienotos crontab noteikumus un izsauciet skriptu rsnapreport.pl, lai pārsūtītu pārskatus uz norādīto e-pasta adresi.
# 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
Kad esat pareizi pievienojis iepriekš minētos ierakstus, jūs saņemsiet ziņojumu uz savu e-pasta adresi, kas līdzīgs zemāk norādītajam.
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
Atsauces saites
- rsnapshot sākumlapa
Tas ir viss, ja instalēšanas laikā rodas kādas problēmas, pametiet man komentāru. Līdz tam sekojiet līdzi TecMint, lai iegūtu interesantākus rakstus par atvērtā koda pasauli.