VPS-i varukoopiad koos taastamise kontrolliga
Varukoopia on kasulik siis, kui saate selle VPS-ist sõltumatult kätte ja taastate vajalikud failid. Harjutus pakib ühe staatilise lehe ning Nginxi seadistusfaili, kopeerib need teise arvutisse ja kontrollib taastatud baite töötavat veebilehte muutmata.
VPSuntu · Uuendatud · Lugemisaeg umbes 5 min.
Selles juhendis
Piiritlege taastamisharjutus
Kasutage Bashi, GNU tar’i, sha256sum’i ja OpenSSH-d Ubuntus või Linuxi/WSL-i kliendis. Serverikäsud käivitage ühes serveriterminalis ja kliendikäsud ühes eraldi arvuti terminalis. Hoidke terminalid avatuna, et muutujad säiliksid. Käsuvea korral peatuge.
Harjutus loob kodukataloogi kaks ajutist näidisfaili. See ei muuda Nginxi, tulemüüri ega avalikku sisu; lahtipakkimine ei käivitu root-kasutajana. Alustage näidisfailidega. Valikuline asendus kasutab ainult staatilise HTTPS-lehe juhendi kaht faili.
Suurema saidi puhul koostage eraldi nimekiri piltidest, ümbersuunamistest, kaasatud seadistustest, DNS-ist ja sõltuvustest. Kahe faili harjutus ei ole terve masina või rakenduse varukoopia.
Looge failid veebilehte muutmata
Looge serveris privaatne harjutuskataloog. Järgmine Nginxi seadistus on arhiveeritav tekst, mitte aktiveeritav teenuseseadistus.
umask 077
backup_lab=$(mktemp -d "$HOME/ubuntu-vps-backup.XXXXXX")
mkdir -p "$backup_lab/payload/site" "$backup_lab/payload/nginx" "$backup_lab/export"
printf '%s\n' '<!doctype html><html lang="en"><title>Restore drill</title><h1>Recovered static page</h1></html>' > "$backup_lab/payload/site/index.html"
printf '%s\n' 'server {' ' listen 8080;' ' server_name example.test;' ' root /var/www/first-site;' '}' > "$backup_lab/payload/nginx/first-site.conf"
printf 'Practice directory: %s\n' "$backup_lab"Soovi korral asendage ainult need harjutuskoopiad juhendi tegeliku lehe ja serveriplokiga. Mõlemad lähtefailid peavad olema teie kontole loetavad. Uurige seadistust saladuste suhtes ja peatage failide kogumise ajaks juurutused, et koopiad vastaksid samale väljalaskele. Näidisfailidega harjutades jätke järgmine plokk vahele.
install -m 600 /var/www/first-site/index.html "$backup_lab/payload/site/index.html"
install -m 600 /etc/nginx/sites-available/first-site "$backup_lab/payload/nginx/first-site.conf"Need käsud loevad avalikke lähtefaile neid muutmata. Need ei kopeeri TLS-i privaatvõtmeid ega süsteemikatalooge. Päris sait võib vajada lisafaile; lisage need teadlikult nii nimekirja kui ka kontrollsummade manifesti.
Looge arhiiv ja kaks kontrollsummade taset
Salvestage serveris valitud failide kontrollsummad, looge suhteliste teedega arhiiv ja arvutage arhiivi kontrollsumma. Ärge muutke sisu selle sammu ajal.
(
cd "$backup_lab/payload" &&
sha256sum site/index.html nginx/first-site.conf > SHA256SUMS
)
tar -czf "$backup_lab/export/static-site.tar.gz" -C "$backup_lab/payload" site nginx SHA256SUMS
(
cd "$backup_lab/export" &&
sha256sum static-site.tar.gz > static-site.tar.gz.sha256
)
tar -tzf "$backup_lab/export/static-site.tar.gz"
printf 'Server export directory: %s\n' "$backup_lab/export"Loendis peavad olema site/, nginx/, kaks valitud faili ja SHA256SUMS. Arhiivi kontrollsumma tuvastab ülekandel muutunud arhiivi; sisemine manifest kontrollib lahtipakitud faile. Kumbki ei tõenda ehtsust, kui keegi saab asendada nii andmed kui ka oodatud kontrollsumma.
Kopeerige varukoopia eraldi arvutisse
Määrake oma kliendiarvutis remote_backup väärtuseks serveri väljastatud täpne ekspordikataloog. Asendage aadress, konto ja võti toimivate SSH-andmetega. 203.0.113.10 on dokumendinäide; REPLACE on asenduskoht, mitte mktemp’i loodud kataloogilõpp.
umask 077
recovery_dir=$(mktemp -d "$HOME/ubuntu-vps-restore.XXXXXX")
remote_backup=/home/deploy/ubuntu-vps-backup.REPLACE/export
scp -i ~/.ssh/ubuntu_vps "deploy@203.0.113.10:$remote_backup/static-site.tar.gz" "$recovery_dir/"
scp -i ~/.ssh/ubuntu_vps "deploy@203.0.113.10:$remote_backup/static-site.tar.gz.sha256" "$recovery_dir/"Enne uue SSH hostivõtme kinnitamist kontrollige sõrmejälge usaldatud kanalist. Ühenduse tõrke korral kasutage SSH diagnoosimise juhendit; ärge keelake kontrolli ülekande õnnestumiseks.
SCP kaitseb ülekannet SSH kaudu. Tar.gz on tihendatud, mitte krüpteeritud fail. Kaitske sihtkontot ja salvestust ning kasutage vajaduse korral krüpteerimist ka salvestamisel. Teine kataloog samas VPS-is ei ole serveriväline koopia.
Kontrollige ja taastage uude tühja kataloogi
Kontrollige arhiivi kliendiarvutis enne lahtipakkimist. Jätkake ainult sha256sum’i tulemusega OK. Vea korral uurige põhjust või kopeerige uuesti; ärge kirjutage oodatud kontrollsummat vea peitmiseks üle.
(
cd "$recovery_dir" &&
sha256sum -c static-site.tar.gz.sha256
)
tar -tzf "$recovery_dir/static-site.tar.gz"Pakkige see usaldatud arhiiv uude kataloogi. Keep-old-files keeldub olemasolevaid faile asendamast ja no-same-owner jätab arhiveeritud omandi taastamata. Ärge muutke sihtkohaks / ega käivitage lahtipakkimist sudo abil.
restore_dir=$(mktemp -d "$recovery_dir/restored.XXXXXX")
tar -xzf "$recovery_dir/static-site.tar.gz" -C "$restore_dir" --keep-old-files --no-same-owner
(
cd "$restore_dir" &&
sha256sum -c SHA256SUMS
)
cat "$restore_dir/site/index.html"Oodake OK tulemust nii site/index.html kui ka nginx/first-site.conf jaoks ja taastatud lehe pealkirja. See kinnitab failisisu, mitte tootmiskeskkonna omandit, ACL-e, teenuse kättesaadavust ega kõiki saidi sõltuvusi.
Eristage failide ja teenuse taastamist
Taastatud seadistus on endiselt passiivne tekstifail. Enne kasutamist kontrollige eraldi asendusserveris teid, kaasatud faile, mooduleid, õigusi ja sertifikaate. Valideerige seal terviklik Nginxi seadistus enne uuesti laadimist ning kontrollige HTTP/HTTPS-i väljastpoolt. Muutmata töötava serveri süntaksikontroll ei valideeri taastatud koopiat.
Arhiiv ei sisalda TLS-i privaatvõtmeid. Planeerige sertifikaadi uuesti väljastamine või eraldi kaitstud koopia. Ärge kopeerige aktiivseid andmebaasifaile selle tar-retseptiga; kasutage andmebaasi toetatud järjepidevat varundus- ja taastamisviisi.
Pakkuja hetktõmmis võib aidata masinat taastada, kuid kontrollige säilitusaega, rikkedomeeni ja taastamisprotsessi. Hetktõmmise olemasolu ei tõenda, et eksporditud veebifailid saab teise hosti taastada.
Määrake eesmärgid ja salvestage tulemus
RPO kirjeldab ajas mõõdetud vastuvõetavat andmekadu; RTO on teenuse taastamise ajasiht. Väikese staatilise infosaidi näitlik eesmärk võib olla 24-tunnine RPO ja 60-minutiline RTO. Need pole selle harjutuse mõõdetud tulemused. Igapäevane varundamine täidab ajakava vaid siis, kui koopiad õnnestuvad ja on taastatavad.
Väikesel ekraanil kerige tabelit külgsuunas, et näha kõiki veerge.
| Salvestatav teave | Mida see näitab |
|---|---|
| Varunduse aeg ja väljalaske tunnus | Millise versiooni saab taastada |
| Sõltumatu sihtkoht ja säilitusaeg | Kus ja kui kaua koopia alles jääb |
| Arhiivi ning failide kontrollsummad | Kas valitud baidid taastusid |
| Taastamise algus ja lõpp | Määratud sammude tegelik kestus |
| Puuduvad failid, õigused või sõltuvused | Mis on teenuse taastamiseks veel vajalik |
| Asendusserveri väline HTTPS-kontroll | Kas veebileht on tegelikult tagasi |
Enne RTO saavutatavaks pidamist mõõtke kogu asendusprotsessi: ligipääs, serveri loomine, seadistus, sertifikaadid ja vajaduse korral DNS. Kiire kohalik lahtipakkimine pole katkestusest taastumise test. Hoidke sobivat arvu taastamispunkte ja jälgige ebaõnnestunud varundustöid. Pakkuja valimisel võrrelge taastamise ja halduse tingimusi.
Korduma kippuvad küsimused
Kas koopia kontrollimiseks peab originaalse saidi kustutama?
Ei. Taastamine eraldi tühja kataloogi ja manifesti kontroll katsetab koopiat katkestust tekitamata. Terve teenuse taastamist katsetage eraldi asenduskeskkonnas.
Kas korrektne kontrollsumma tähendab, et kogu sait on varundatud?
See kinnitab ainult manifestis nimetatud faile. See ei leia puuduvat pilti, andmebaasi, saladust või DNS-seadet. Pidage ressursinimekirja ja kontrollige pärast taastamist veebilehe tegelikke funktsioone.