Rezervna kopija VPS-a koju možete da vratite
Rezervna kopija VPS-a treba da bude dostupna i kada originalni server nije. Ova vežba proverava dve datoteke: statičku stranicu i Nginx konfiguraciju. Arhivu prenosite na drugi računar i vraćate je u prazan direktorijum, bez izmene aktivnog sajta.
VPSuntu · Ažurirano · Oko 4 min čitanja
Sadržaj ovog vodiča
Ograničite obim prve provere
Potrebni su Bash, GNU tar, sha256sum i OpenSSH na Ubuntu serveru i Linux/WSL klijentu. Serverske komande držite u jednom terminalu servera, a klijentske u jednom na drugom računaru, da promenljive ostanu dostupne. Kod greške stanite.
Primer počinje sa dve privremene datoteke u vašem korisničkom direktorijumu. Ne menja Nginx, firewall niti aktivni sadržaj i ne raspakuje kao root. Za pravi sajt posebno popišite sve datoteke, DNS, preusmeravanja, sertifikate i zavisne servise. Ovo nije kompletna kopija servera.
Pripremite bezbedne probne datoteke
Na serveru napravite privatan direktorijum za vežbu. Nginx tekst se ovde samo arhivira; ne aktivira se.
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"Opcioni blok ispod zamenjuje samo probne kopije stvarnim datotekama iz HTTPS vodiča. Preskočite ga ako vežbate sa primerom. Izvori moraju biti čitljivi, a konfiguraciju prvo proverite zbog tajni. Privremeno obustavite objavljivanje kako bi kopije pripadale istoj verziji.
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"Izvorni sadržaj se samo čita. Privatni sertifikati i čitavi sistemski direktorijumi nisu uključeni. Sve dodatne potrebne datoteke unesite i u popis i u manifest kontrolnih zbirova.
Arhivirajte i zabeležite kontrolne zbirove
Na serveru proverite datoteke, napravite arhivu sa relativnim putanjama i zabeležite njen zbir. Sadržaj tokom ovog koraka ne menjajte.
(
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"Na spisku očekujte site/, nginx/, izabrane datoteke i SHA256SUMS. Zbir arhive proverava prenete bajtove, a unutrašnji manifest raspakovane datoteke. Hash nije potvrda autentičnosti ako neko može da zameni i podatke i očekivani zbir.
Iznesite kopiju sa servera
Na klijentu postavite remote_backup na tačan izvozni direktorijum ispisan na serveru. Zamenite dokumentacionu adresu 203.0.113.10, nalog i ključ. REPLACE nije stvarni nastavak koji daje mktemp.
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/"Nov host otisak potvrdite pouzdanim putem. Ako SCP ne može da se prijavi, proverite SSH grešku bez isključivanja provere ključa.
SSH štiti prenos, ali tar.gz je samo komprimovan, nije šifrovan. Zaštitite odredišni nalog i prostor, a osetljive kopije šifrujte u mirovanju. Drugi direktorijum istog VPS-a nije izdvojena kopija.
Vratite podatke tek nakon uspešne provere
Na klijentu proverite arhivu i nastavite samo kada dobijete OK. Ne menjajte očekivani zbir da sakrijete grešku; istražite uzrok ili ponovite prenos.
(
cd "$recovery_dir" &&
sha256sum -c static-site.tar.gz.sha256
)
tar -tzf "$recovery_dir/static-site.tar.gz"Pouzdanu arhivu raspakujte u nov prazan direktorijum. Keep-old-files odbija prepisivanje, a no-same-owner ne vraća arhivirano vlasništvo. Ne koristite sudo i ne birajte / kao odredište.
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"Očekujte OK za obe datoteke i vraćen naslov stranice. Time su provereni bajtovi, ali nisu dozvole produkcije, ACL, aktivan servis ili izostavljena baza.
Proverite i oporavak usluge
Vraćena konfiguracija je još običan tekst. Na posebnom zamenskom serveru proverite putanje, includes, module, dozvole i sertifikate. Tamo testirajte sastavljeni Nginx pre učitavanja i zatražite HTTPS spolja. Provera neizmenjenog starog servera ne proverava vraćenu kopiju.
Planirajte novo izdavanje sertifikata ili posebno zaštićenu kopiju TLS ključeva. Aktivnu bazu ne kopirajte ovim tar postupkom: treba joj podržan metod dosledne kopije i vraćanja. Snapshot provajdera ima svoje uslove čuvanja i dostupnosti; njegovo postojanje ne dokazuje prenosiv oporavak.
Zabeležite vreme i preostale korake
RPO predstavlja prihvatljiv gubitak podataka izražen vremenom; RTO ciljani rok povratka usluge. Primer poslovnog cilja za mali informativni sajt je 24 sata RPO i 60 minuta RTO. To nisu izmereni rezultati. Dnevna kopija ima smisla samo kada uspe i ostane upotrebljiva.
Na užem ekranu pomerite tabelu vodoravno da vidite ostale kolone.
| Zapis | Zašto ga čuvate |
|---|---|
| Vreme kopije i verzija | Znate šta može da se vrati |
| Izdvojeno odredište i rok čuvanja | Znate gde kopija ostaje dostupna |
| Rezultati kontrolnih zbirova | Potvrđuju izabrane datoteke |
| Početak i kraj vraćanja | Pokazuju trajanje definisanih koraka |
| Nedostajuće datoteke i dozvole | Pokazuju preostali posao |
| Spoljašnji HTTPS test zamene | Potvrđuje da usluga radi |
Merite ceo oporavak: pristup, kreiranje servera, konfiguraciju, sertifikat i DNS. Brzo raspakivanje nije mera prekida usluge. Čuvajte više odgovarajućih verzija i proveravajte neuspele poslove. Pri izboru paketa pregledajte mogućnosti oporavka.
Pitanja i odgovori
Treba li obrisati original da bih testirao kopiju?
Ne. Koristite drugi prazan direktorijum, a celu uslugu proverite na odvojenoj zamenskoj mašini.
Da li dobar hash znači da imam ceo sajt?
Samo da se poklapaju datoteke u manifestu. Izostavljena baza, DNS ili tajna ne mogu se otkriti tim poređenjem.