Praktični vodič / Kopiranje i vraćanje

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.

· 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.

ZapisZašto ga čuvate
Vreme kopije i verzijaZnate šta može da se vrati
Izdvojeno odredište i rok čuvanjaZnate gde kopija ostaje dostupna
Rezultati kontrolnih zbirovaPotvrđuju izabrane datoteke
Početak i kraj vraćanjaPokazuju trajanje definisanih koraka
Nedostajuće datoteke i dozvolePokazuju preostali posao
Spoljašnji HTTPS test zamenePotvrđ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.

Vežba proverava izabrane datoteke. Ne predstavlja test vašeg udaljenog SSH pristupa, aktivacije Nginxa ili kompletnog oporavka aplikacije.

Nastavite sa povezanim zadatkom