Praktiline juhend / Varundamine ja taastamine

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.

· 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 teaveMida see näitab
Varunduse aeg ja väljalaske tunnusMillise versiooni saab taastada
Sõltumatu sihtkoht ja säilitusaegKus ja kui kaua koopia alles jääb
Arhiivi ning failide kontrollsummadKas valitud baidid taastusid
Taastamise algus ja lõppMääratud sammude tegelik kestus
Puuduvad failid, õigused või sõltuvusedMis on teenuse taastamiseks veel vajalik
Asendusserveri väline HTTPS-kontrollKas 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.

Ingliskeelse lähteharjutuse näidisarhiivi ja kontrollsummade töövoogu katsetati GNU tööriistadega Windowsi Git Bashis. See ei olnud Ubuntu serveri, kaug-SSH, sertifikaaditaaste ega Nginxi aktiveerimise test.

Seotud juhendid