Du serveriai, vienas VPN, vienas katalogas, kuris turi egzistuoti abiejose vietose, ir komanda, kurią lengva paleisti ir sunku atšaukti. Prieš ją rašydami nuspręskite, kuri kopija yra autoritetinga, nes kiekvienas tolesnis rsync klausimas priklauso nuo to atsakymo. Vienpusė replika, bendras darbo aplankas ir versijuotas archyvas reikalauja skirtingų pakeitimų ir ištrynimų taisyklių. Tunelis suteikia kelią ir neturi nuomonės apie nė vieną iš jų.

Nuspręskite, kuri kopija laimi, prieš rašydami komandą

Užrašykite kryptį vienu sakiniu, įskaitant pagrindinio kompiuterio vardą ir kelią kiekvienoje pusėje, ir gaukite duomenų savininko patvirtinimą. Šiame vadove šaltinis yra /srv/publish/, o paskirties vieta yra paskyra fileserver.example, kuriai leidžiama rašyti tik į /srv/mirror/.

Prieš kopijavimą patvirtinkite transportavimo faktus: SSH pagrindinio kompiuterio raktas patikrintas, paskirties paskyra gali rašyti replikos srityje ir niekur kitur, o abu kompiuteriai turi suderinamas rsync versijas. Šios išankstinės sąlygos neleidžia mažai planavimo klaidai tapti teisių incidentu. Jos taip pat pasako, kuri paskyra atsiras paskirties žurnaluose, kai kas nors nepavyks.

Peržiūrėkite kopiją ir perskaitykite išsamų sąrašą

Pirmiausia paleiskite kopiją su peržiūros vėliavėle ir išsaugokite išvestį. Išsamūs pakeitimai pasako, kas nutiktų kiekvienam keliui, o tai daug naudingiau nei vėlesnė suvestinė. Išsaugokite išvestį pakeitimų žurnale, kad kitas paleidimas turėtų su kuo palyginti.

rsync -rt --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/

Baigiamasis pasvirasis brūkšnys svarbus. Šaltinio pusėje jis reiškia to katalogo turinį, o jo praleidimas prideda papildomą katalogo lygį, pavadintą šaltinio vardu. rsync vadovas aprašo abi formas kartu su metaduomenų išsaugojimo vėliavėlėmis, o reikalingas parinkčių rinkinys priklauso nuo duomenų, o ne nuo įpročio.

Skaitykite kiekvieną eilutę atsižvelgdami į numatytą paskirties vietą. Peržiūros vėliavėlės pašalinimas atlieka kopijavimą ir gali perrašyti failus, o be trynimo parinkties papildomi failai, jau esantys paskirties vietoje, tiesiog lieka ten, kur yra. Tai saugi numatytoji reikšmė tik jei tikrai nusprendėte, kad palikti pasenę failai yra priimtini. Jei atsakymas ne, reikia priimti toliau pateiktą trynimo sprendimą, o ne berti papildomą vėliavėlę į šią komandą.

Tada nuspręskite, ar ištrynimai keliauja

Paskirties vietos pavertimas veidrodžiu yra antras sprendimas, o ne pirmojo patikslinimas. Peržiūrėkite jį atskirai, pridėję trynimo vėliavėlę ir nieko daugiau nepakeitę, kad sąrašo skirtumas priklausytų tik tam sprendimui.

rsync -rt --delete --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/

Ištrynimai pašalina perteklinius failus priėmimo pusėje sinchronizuotoje srityje, todėl neteisingas šaltinio kelias, neprijungtas katalogas ar filtras, išskiriantis daugiau nei numatyta, gali padaryti naikinantį paleidimą panašų į švarų veidrodį. Peržiūros sąrašas yra vienintelė vieta, kur šis skirtumas tampa matomas prieš tai, kai tampa brangus. Laikykite nepriklausomą atkūrimo kopiją ten, kur duomenys tai pateisina, ir atminkite, kad veidrodis tiksliai atkartoja atsitiktinį ištrynimą, o ne išsaugo istoriją.

Peržiūra taip pat nieko neužrakina. Žmonės redaguoja failus tarp bandomojo ir tikrojo paleidimo, o failų sistemos turi savo nuomonę, todėl patvirtintas paleidimas ir vykdomas paleidimas nėra ta pati operacija, nebent abu medžiai yra ramūs.

Dvi vienpusės užduotys nesukuria dvikrypčio sinchronizavimo

Tos pačios komandos paleidimas abiem kryptimis yra dažniausia duomenų praradimo priežastis šiame scenarijuje. Kiekviena kryptis kitą pusę laiko paskirties vieta ir linksmai perrašo naujesnį turinį, o ištrynimai atsispindi ta tvarka, kuria suveikia grafikas.

Jei naudotojai turi redaguoti abi kopijas, tai kitas produkto sprendimas: konfliktų tvarkymas, ištrynimų stebėjimas ir įrankis, sukurtas tam modeliui. Priartinti tai grafiko tvarka yra būdas, kuriuo bendras aplankas gauna dvi kiekvieno dokumento versijas, kurių niekas negali suderinti. Nuspręskite tai aiškiai, o ne priartinkite dviem cron įrašais ir viltimi.

Automatizuokite tik po to, kai politika parašyta

Suplanuota užduotis turėtų nešti kryptį, kelius, metaduomenų politiką ir patvirtintą trynimo sprendimą. Įdėkite tuos penkis faktus į patį užduoties failą, o ne į wiki puslapį, kurio kitas administratorius gali niekada neperskaityti. Užkirkite kelią persidengiantiems paleidimams, nes dvi kopijos, rašančios į tą patį medį vienu metu, sukuria būseną, kurios nė viena neketino.

Kai šaltinis yra veikianti duomenų bazė ar kitas kelių failų duomenų rinkinys, pirmiausia padarykite su programa suderinamą eksportą arba suderintą momentinę kopiją. Rekursyvus failų ėjimas nėra transakcija, o kintančio duomenų rinkinio kopija nėra nuosekli.

Registruokite užbaigimus ir nesėkmes bei tikrinkite duomenų rinkinį paskirties vietoje, o ne tik išėjimo kodą. VPN atkūrimas po sutrikimo atkuria ryšį; tai nieko nesako apie tai, ar paskutinė kopija baigėsi, ar prieštaringi pakeitimai kada nors buvo išspręsti.

Susiję straipsniai