„Rsnapshot“ (pagrįsta „Rsync“) – vietinė/nuotolinė failų sistemos atsarginių kopijų kūrimo priemonė, skirta „Linux“
rsnapshot yra atvirojo kodo vietinė/nuotolinė failų sistemos atsarginės kopijos programa, sukurta Perl kalba, kuri pranašesnė programaRsync ir SSH, skirta sukurti suplanuotas laipsniškas Linux/Unix failų sistemų atsargines kopijas, užimdamas tik vietą vieną visą atsarginę kopiją ir skirtumus ir laikykite šias atsargines kopijas vietiniame diske kitame kietajame diske, išoriniame USB atmintyje , NFS prijungtą diską arba tiesiog per tinklą į kitą įrenginį per SSH.
Šiame straipsnyje bus parodyta, kaip įdiegti, nustatyti ir naudoti rsnapshot, kad būtų galima sukurti laipsnišką valandinį, kasdienį, kas savaitę ir mėnesio vietines atsargines kopijas, taip pat nuotolines atsargines kopijas. Jei norite atlikti visus šiame straipsnyje nurodytus veiksmus, turite būti root naudotojas.
1 veiksmas: „Rsnapshot Backup“ diegimas sistemoje „Linux“.
rsnapshot diegimas naudojant Yum ir APT gali šiek tiek skirtis, jei naudojate Red Hat ir Debianpagrįsti platinimai.
RHEL/CentOS
Pirmiausia turėsite įdiegti ir įgalinti trečiosios šalies saugyklą, pavadintą EPEL. Spustelėkite toliau pateiktą nuorodą, kad įdiegtumėte ir įgalintumėte savo RHEL/CentOS sistemas. Fedora naudotojams nereikia jokių specialių saugyklos konfigūracijų.
- Įdiekite ir įgalinkite EPEL saugyklą RHEL/CentOS 6/5/4
Atlikę sąranką, įdiekite rsnapshot iš komandinės eilutės, kaip parodyta.
yum install rsnapshot
„Debian“/„Ubuntu“/„Linux Mint“.
Pagal numatytuosius nustatymus rsnapshot įtraukta į Ubuntu saugyklas, todėl galite ją įdiegti naudodami komandą apt-get, kaip parodyta.
apt-get install rsnapshot
2 veiksmas: SSH prisijungimo be slaptažodžio nustatymas
Norėdami sukurti atsarginę nuotolinių Linux serverių kopiją, rsnapshot atsarginės kopijos serveris galės prisijungti per SSH be slaptažodžio. Norėdami tai padaryti, turėsite sukurti SSH viešuosius ir privačius raktus, kad galėtumėte autentifikuoti rsnapshot serverį. Spustelėkite toliau pateiktą nuorodą, kad sugeneruotumėte viešuosius ir privačius raktus rsnapshot atsarginiame serveryje.
- Sukurkite SSH prisijungimą be slaptažodžio naudodami SSH Keygen
3 veiksmas: „Rsnapshot“ konfigūravimas
Dabar turėsite redaguoti ir pridėti kai kuriuos parametrus į rsnapshot konfigūracijos failą. Atidarykite rsnapshot.conf failą naudodami vi arba nano redaktorių.
vi /etc/rsnapshot.conf
Tada sukurkite atsarginių kopijų katalogą, kuriame norite saugoti visas atsargines kopijas. Mano atveju mano atsarginės kopijos katalogo vieta yra „/data/backup/ “. Ieškokite ir redaguokite šį parametrą, kad nustatytumėte atsarginės kopijos vietą.
snapshot_root /data/backup/
Taip pat panaikinkite eilutės „cmd_ssh“ komentarą, kad galėtumėte nuotoliniu būdu kurti atsargines kopijas per SSH. Norėdami panaikinti eilutės komentarą, pašalinkite „#“ prieš kitą eilutę, kad rsnapshot galėtų saugiai perkelti duomenis į atsarginį serverį.
cmd_ssh /usr/bin/ssh
Tada turite nuspręsti, kiek senų atsarginių kopijų norite išsaugoti, nes rsnapshot nežinojo, kaip dažnai norite daryti momentines kopijas. Turite nurodyti, kiek duomenų norite išsaugoti, pridėti intervalus, kuriuos norite išsaugoti, ir kiek jų.
Na, numatytieji nustatymai yra pakankamai geri, bet vis tiek norėčiau, kad įjungtumėte „mėnesinį“ intervalą, kad galėtumėte turėti ir ilgalaikes atsargines kopijas. Redaguokite šią skiltį, kad ji atrodytų panašiai kaip toliau pateikiami nustatymai.
#########################################
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
Dar vienas dalykas, kurį reikia redaguoti, yra „ssh_args“ kintamasis. Jei numatytąjį SSH prievadą (22) pakeitėte į kitą, turite nurodyti tą nuotolinio atsarginės kopijos serverio prievado numerį.
ssh_args -p 7851
Galiausiai pridėkite vietinių ir nuotolinių atsarginių katalogų, kurių atsarginę kopiją norite sukurti.
Vietinių katalogų atsarginė kopija
Jei nusprendėte sukurti atsargines katalogų kopijas tame pačiame kompiuteryje, atsarginės kopijos įrašas atrodys taip. Pavyzdžiui, darau atsargines savo katalogų /tecmint ir /etc kopijas.
backup /tecmint/ localhost/
backup /etc/ localhost/
Nuotolinių katalogų atsarginė kopija
Jei norite sukurti atsarginę nuotolinio serverio katalogų kopiją, turite nurodyti rsnapshot, kur yra serveris ir kurių katalogų atsarginę kopiją norite sukurti. Kuriu savo nuotolinio serverio katalogo /home atsarginę kopiją, esančią rsnapshot serverio kataloge /data/backup.
backup [email :/home/ /data/backup/
Taip pat skaitykite:
- Kaip sukurti atsarginę kopiją/sinchronizuoti katalogus naudojant Rsync (nuotolinio sinchronizavimo) įrankį
- Kaip perkelti failus/aplankus naudojant SCP komandą
Išskirkite failus ir katalogus
Čia aš ketinu išskirti viską, o tada tik konkrečiai apibrėžti tai, ko noriu sukurti atsarginę kopiją. Norėdami tai padaryti, turite sukurti pašalinimo failą.
vi /data/backup/tecmint.exclude
Pirmiausia gaukite katalogų, kurių atsargines kopijas norite sukurti, sąrašą ir pridėkite ( – * ), kad neįtrauktumėte visų kitų. Tai padarys atsarginę kopiją tik to, ką nurodėte faile. Mano pašalinimo failas atrodo panašiai kaip toliau.
+ /boot
+ /data
+ /tecmint
+ /etc
+ /home
+ /opt
+ /root
+ /usr
- /usr/*
- /var/cache
+ /var
- /*
Naudoti parinktį Išskirti failą gali būti labai sudėtinga, nes naudojama rsync rekursija. Taigi, mano aukščiau pateiktas pavyzdys gali būti ne tai, ko ieškote. Tada pridėkite išskyrimo failą prie rsnapshot.conf failo.
exclude_file /data/backup/tecmint.exclude
Galiausiai, jūs beveik baigėte pradinę konfigūraciją. Prieš tęsdami, išsaugokite konfigūracijos failą „/etc/rsnapshot.conf“. Yra daug paaiškinimų, bet čia yra mano konfigūracijos failo pavyzdys.
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/
Visos aukščiau pateiktos parinktys ir argumentų paaiškinimai yra tokie:
- config_version 1.2=konfigūracijos failo versija
- snapshot_root=atsarginės paskirties vieta momentinėms nuotraukoms saugoti
- cmd_cp=Kopijavimo komandos kelias
- cmd_rm=komandos pašalinimo kelias
- cmd_rsync=Kelias į rsync
- cmd_ssh=kelias į SSH
- cmd_logger=kelias į apvalkalo komandų sąsają į syslog
- cmd_du=Kelio į disko naudojimo komanda
- valandinis intervalas=kiek valandinių atsarginių kopijų reikia saugoti.
- intervalas kasdien=kiek atsarginių kopijų reikia saugoti kasdien.
- intervalas per savaitę=kiek atsarginių kopijų kas savaitę reikia pasilikti.
- intervalas per mėnesį=kiek atsarginių kopijų per mėnesį reikia saugoti.
- ssh_args=pasirenkami SSH argumentai, pvz., kitas prievadas (-p )
- verbose=savaime aišku
- loglevel=savaime aišku
- logfile=kelias į žurnalo failą
- exclude_file=kelias į išskyrimo failą (bus paaiškinta išsamiau)
- rsync_long_args=Ilgi argumentai, kuriuos reikia perduoti rsync
- užrakinimo failas=savaime aišku
- atsarginė kopija=visas kelias į atsarginę kopiją ir santykinis paskirties vietos kelias.
4 veiksmas: patikrinkite „Rsnapshot“ konfigūraciją
Atlikę visą konfigūraciją, laikas patikrinti, ar viskas veikia taip, kaip tikėtasi. Vykdykite šią komandą, kad patikrintumėte, ar jūsų konfigūracijos sintaksė yra tinkama.
rsnapshot configtest
Syntax OK
Jei viskas sukonfigūruota teisingai, gausite pranešimą „Sintaksė gerai“. Jei gaunate klaidų pranešimų, tai reiškia, kad prieš paleisdami rsnapshot turite jas ištaisyti.
Tada atlikite vienos iš momentinių nuotraukų bandomąjį paleidimą, kad įsitikintumėte, jog gauname teisingus rezultatus. Mes naudojame parametrą „hourly“, kad atliktume bandomąjį paleidimą naudodami argumentą -t (testas). Ši žemiau esanti komanda parodys išsamų sąrašą dalykų, kuriuos ji darys, iš tikrųjų jų neatlikdama.
rsnapshot -t hourly
Pavyzdžio išvestis
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/
Pastaba: aukščiau pateikta komanda nurodo rsnapshot sukurti valandinę atsarginę kopiją. Jis iš tikrųjų išspausdina komandas, kurias ji atliks, kai ją iš tikrųjų vykdysime.
5 veiksmas: paleiskite „Rsnapshot“ rankiniu būdu
Patikrinę rezultatus, galite pašalinti parinktį „-t“, kad komanda būtų paleista iš tikrųjų.
rsnapshot hourly
Aukščiau pateikta komanda paleis atsarginį scenarijų su visa konfigūracija, kurią įtraukėme į failą rsnapshot.conf, ir sukuria katalogą „atsarginė kopija“, o po to sukuria katalogo struktūrą. kuri tvarko mūsų failus. Paleidę aukščiau nurodytą komandą, galite patikrinti rezultatus eidami į atsarginės kopijos katalogą ir nurodydami katalogo struktūrą naudodami komandą ls -l, kaip parodyta.
cd /data/backup
ls -l
total 4
drwxr-xr-x 3 root root 4096 Oct 28 09:11 hourly.0
6 veiksmas: automatizuokite procesą
Norėdami automatizuoti procesą, turite suplanuoti rsnapshot, kad jis būtų vykdomas tam tikrais intervalais iš Cron. Pagal numatytuosius nustatymus rsnapshot pateikiamas su cron failu, esančiu „/etc/cron.d/rsnapshot“, jei jo nėra, sukurkite jį ir pridėkite prie jo šias eilutes.
Pagal numatytuosius nustatymus taisyklės komentuojamos, todėl turite pašalinti „#“ iš prieš planavimo skiltį, kad įgalintumėte šias vertes.
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
Leiskite man tiksliai paaiškinti, ką daro aukščiau pateiktos cron taisyklės:
- Vykdoma kas 4 valandas ir kataloge /backup sukuriamas valandinis katalogas.
- Veikia kasdien 3:30 ir kataloge /backup sukurkite kasdienį katalogą.
- Veikia kas savaitę kiekvieną pirmadienį 3:00 val. ir sukuria savaitinį katalogą /backup katalogas.
- Veikia kas kas mėnesį 2:30 val. ir kataloge /backup sukuriamas mėnesinis katalogas.
Norėdami geriau suprasti, kaip veikia cron taisyklės, siūlau perskaityti mūsų straipsnį, kuriame aprašoma.
- 11 Cron planavimo pavyzdžių
7 veiksmas: momentinės nuotraukos ataskaitos
Snapshot pateikiamas puikus mažas ataskaitų teikimo Perl scenarijus, kuris siunčia jums el. pašto įspėjimą su visa informacija apie tai, kas įvyko kuriant atsarginę duomenų kopiją. Norėdami nustatyti šį scenarijų, turite nukopijuoti scenarijų kažkur į „/usr/local/bin“ ir padaryti jį vykdomąjį.
cp /usr/share/doc/rsnapshot-1.3.1/utils/rsnapreport.pl /usr/local/bin
chmod +x /usr/local/bin/rsnapreport.pl
Tada pridėkite parametrą „–stats“ faile „rsnapshot.conf“ prie ilgų rsync argumentų skilties.
vi /etc/rsnapshot.conf
rsync_long_args --stats --delete --numeric-ids --delete-excluded
Dabar redaguokite crontab taisykles, kurios buvo pridėtos anksčiau, ir iškvieskite scenarijų rsnapreport.pl, kad ataskaitos būtų perduotos nurodytu el. pašto adresu.
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
Teisingai įtraukę aukščiau esančius įrašus, savo el. pašto adresu gausite ataskaitą, panašią į toliau pateiktą.
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
Nuorodų nuorodos
- rsnapshot pagrindinis puslapis
Tai kol kas, jei diegiant iškyla kokių nors problemų, parašykite man komentarą. Iki tol sekite TecMint, kur rasite daugiau įdomių straipsnių apie atvirojo kodo pasaulį.