VPS బ్యాకప్, పునరుద్ధరణను పరీక్షించండి
VPS బయట నుంచి backupను తెచ్చి ఆశించిన filesను పునరుద్ధరించగలిగినప్పుడే దాని ఉపయోగాన్ని పరీక్షించినట్లు అవుతుంది. ఈ సాధనలో static పేజీ, ఒక Nginx configurationను archive చేసి మరో కంప్యూటర్కు కాపీ చేస్తాం. నడుస్తున్న websiteను తాకకుండా తిరిగి వచ్చిన bytesను తనిఖీ చేస్తాం.
VPSuntu · నవీకరణ: · చదవడానికి సుమారు 4 నిమిషాలు
గైడ్లోని విభాగాలు
చిన్న recovery సాధన పరిధిని నిర్ణయించండి
Ubuntu లేదా Linux/WSL clientలో Bash, GNU tar, sha256sum, OpenSSH అవసరం. Server commandsను ఒక server terminalలో; client commandsను వేరే కంప్యూటర్లోని ఒక terminalలో అమలు చేయండి. Variables అందుబాటులో ఉండేందుకు రెండూ తెరిచి ఉంచండి. ఏ command error వచ్చినా ఆపండి.
Home directoryలో రెండు disposable files వాడతాం. Nginx, firewall, live content మారవు; extraction rootగా నడవదు. ముందు fixturesతో ప్రారంభించండి. Optional substitution static HTTPS ఉదాహరణలోని రెండు filesకే వర్తిస్తుంది. పెద్ద సైట్ assets, redirects, includes, DNS, dependenciesని వేరుగా నమోదు చేయండి. ఇది పూర్తి machine లేదా application backup కాదు.
Website మార్చకుండా రెండు files సిద్ధం చేయండి
సర్వర్లో private practice directory సృష్టించండి. కింది configuration archiveలో పెట్టే file మాత్రమే; active service configuration కాదు.
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"ఐచ్చికం: tutorialలోని నిజమైన page, server blockను backup చేయాలంటే disposable copiesనే కింది commandsతో మార్చండి. Source files రెండూ మీ accountకు readableగా ఉండాలి. ముందు secrets ఉన్నాయా చూడండి. ఒకే release files రావడానికి సేకరించేటప్పుడు deployments నిలిపివేయండి. Fixture సాధనకు ఈ block వదిలేయండి.
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"ఈ commands live sourcesను చదువుతాయి; మార్చవు. Certificate private keys లేదా మొత్తం system directoriesను కాపీ చేయవు. అదనపు files అవసరమైతే inventory, checksum manifest రెండింటికీ ఉద్దేశపూర్వకంగా చేర్చండి.
Archive, రెండు స్థాయిల checksums సృష్టించండి
సర్వర్లో ఎంపిక చేసిన files checksums రాసి relative pathsతో archive తయారు చేయండి; తర్వాత archive checksum తీసుకోండి. ఈ దశలో payload మార్చవద్దు.
(
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"Listingలో site/, nginx/, ఎంపిక చేసిన రెండు files, SHA256SUMS ఉండాలి. Archive checksum transferలో మార్పును గుర్తిస్తుంది; లోపలి manifest extracted filesను చూస్తుంది. ఎవరైనా dataతో పాటు expected checksum కూడా మార్చగలిగితే checksums backup authenticityను నిరూపించవు.
వేరే కంప్యూటర్కు backup కాపీ చేయండి
Clientలో remote_backupను server చూపిన exact export directoryగా పెట్టండి. Sample address, account, key filename స్థానంలో మీ working SSH వివరాలు ఇవ్వండి. 203.0.113.10 reserved example; REPLACE placeholder మాత్రమే, mktemp సృష్టించిన suffix కాదు.
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/"కొత్త host అంగీకరించే ముందు trusted channelలో fingerprint చూడండి. SSH విఫలమైతే SSH గైడ్ వాడండి; transfer కోసం host-key checking ఆపవద్దు. SCP SSH ద్వారా transferను రక్షిస్తుంది. Tar.gz compressed మాత్రమే, encrypted కాదు; destination account/storageను రక్షించి అవసరమైతే encryption at rest వాడండి. అదే VPSలో మరో directory off-server copy కాదు.
కొత్త ఖాళీ directoryలో తనిఖీ చేసి పునరుద్ధరించండి
Clientలో extractకు ముందు archiveను తనిఖీ చేయండి. Sha256sum OK చూపితేనే కొనసాగండి. విఫలమైతే కారణం చూడండి లేదా మళ్లీ transfer చేయండి; లోపం దాచడానికి expected checksum మార్చవద్దు.
(
cd "$recovery_dir" &&
sha256sum -c static-site.tar.gz.sha256
)
tar -tzf "$recovery_dir/static-site.tar.gz"ఈ trusted archiveను కొత్త directoryలో extract చేయండి. Keep-old-files existing filesను భర్తీ చేయనివ్వదు; no-same-owner archived ownershipను అమలు చేయదు. Destinationను /గా మార్చవద్దు; sudoతో extract చేయవద్దు.
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"site/index.html, nginx/first-site.conf రెండింటికీ OK, recovered page heading రావాలి. ఇది file contents తనిఖీ మాత్రమే; production ownership, ACLs, service availability లేదా అన్ని dependencies కాదు.
File recovery, service recovery వేరు పరీక్షించండి
Restored configuration ఇంకా inactive text file. వేరే replacement serverపై paths, includes, modules, permissions, certificates చూడండి. అక్కడ పూర్తి Nginx configurationను validate చేసి reload చేయండి; HTTP/HTTPS బయట నుంచి చూడండి. మారని live serverపై syntax check చేస్తే ఈ restored copy validate కాదు.
ఈ archiveలో TLS private keys లేవు. Certificate reissue లేదా వేరే protected backupను ప్లాన్ చేయండి. Active database filesకు ఈ tar recipe వాడవద్దు; database supported consistent backup/restore విధానం వాడండి. Snapshots కోసం retention, failure domain, restore process చూడండి. Snapshot ఉండటం exported filesను replacement hostలో తిరిగి తెచ్చుకోగలరని నిరూపించదు.
Recovery లక్ష్యాలు, ఫలితాన్ని నమోదు చేయండి
RPO అంటే కాలంలో కొలిచే ఆమోదయోగ్యమైన data loss; RTO అంటే service పునరుద్ధరణకు లక్ష్య సమయం. చిన్న static siteకి 24-hour RPO, 60-minute RTO ఉదాహరణ business targets మాత్రమే; ఈ సాధనలో కొలిచిన ఫలితాలు కాదు. Daily backups విజయవంతమై recoverableగా ఉంటేనే ఆ scheduleకు అర్థం ఉంటుంది.
చిన్న స్క్రీన్లో అన్ని నిలువు వరుసలు చూడటానికి పట్టికను పక్కకు జరపండి.
| నమోదు | ఏం నిర్ధారిస్తుంది |
|---|---|
| Backup సమయం, release ID | ఏ version తిరిగి పొందవచ్చు |
| Independent destination, retention | Copy ఎక్కడ, ఎంతకాలం ఉంటుంది |
| Archive/file checksum ఫలితాలు | ఎంపిక చేసిన bytes తిరిగి వచ్చాయా |
| Restore ప్రారంభం, ముగింపు | నిర్ణయించిన దశలకు పట్టిన సమయం |
| Missing files, permissions, dependencies | Service recovery ముందు మిగిలిన పని |
| Replacementలో external HTTPS | Website నిజంగా తిరిగి వచ్చిందా |
RTO సాధ్యమని చెప్పే ముందు access, provisioning, config, certificates, అవసరమైతే DNS సహా పూర్తి ప్రక్రియను కొలవండి. వేగమైన local extraction outage-recovery benchmark కాదు. అనుకూలమైన అనేక restore points ఉంచి failed jobs చూడండి. Hosting పోలికలో storage retention, restore supportను చేర్చండి.
ప్రశ్నలు, సమాధానాలు
Backupను పరీక్షించడానికి అసలు websiteను తొలగించాలా?
అవసరం లేదు. వేరే ఖాళీ directoryలో restore చేసి manifest చూడటం ద్వారా outage లేకుండా file copyను పరీక్షించవచ్చు. పూర్తి serviceను వేరే replacement environmentలో పరీక్షించండి.
Checksum సరిపోతే మొత్తం site backup అయిందా?
అది manifestలోని filesను మాత్రమే నిర్ధారిస్తుంది. వదిలిన asset, database, secret, DNS settingను కనుగొనదు. Inventory ఉంచి service restore తర్వాత నిజమైన పనులను పరీక్షించండి.