VPS сақтық көшірмесін қалпына келтіруді сынау
Екі сынақ файлын архивтеп, checksum арқылы тексеріңіз, көшірмені басқа компьютерге жіберіп, жаңа бос каталогқа шығарыңыз. Бұл жаттығу жұмыс істейтін сайтты алмастырмайды және толық қолданба backup жүйесі болып саналмайды.
VPSuntu · Жаңартылды: · Оқу уақыты: шамамен 4 минут
Нұсқаулық мазмұны
Жаттығудың шекарасын белгілеңіз
Ubuntu серверінде Bash, GNU tar, sha256sum және OpenSSH; клиентте Linux немесе WSL ортасы қажет. Сервер мен клиент терминалдарын ажыратыңыз. Әр ортада командалар бір терминалда орындалсын: кейінгі блоктар алдыңғы айнымалыларды қолданады. Кез келген қате шықса, жалғастырмай себебін түзетіңіз.
Өз home каталогыңызда екі уақытша файл жасалады. Nginx қызметі, тірі сайт және firewall өзгермейді; архив түбірлік / каталогына шығарылмайды. Толық backup үшін assets, redirects, include файлдар, DNS, runtime, дерекқор және сертификат тәуелділіктерін бөлек түгендеу керек.
Сынақ файлдарын дайындаңыз
Төмендегі командалар серверде fixture сайт файлын және белсенді емес Nginx конфигурациясын жасайды. Олар нақты қызметке қосылмайды.
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"Қаласаңыз, осы нұсқаулықтағы екі файлдың орнына өзіңіз оқуға құқылы статикалық бет пен site конфигурациясын пайдаланыңыз. Алдымен құпия дерек бар-жоғын тексеріп, көшірме кезінде deploy-ды уақытша тоқтатыңыз. Бұл тар мысалға certificate private key, жүйелік каталог немесе басқа файл қоспаңыз. Қосымша файл керек болса, түгендеу мен manifest-ті де бейімдеңіз.
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"Файлдар мен архив checksum мәндерін жасаңыз
Серверде алдымен салыстырмалы жолдары бар файл checksum тізімін, содан соң архив пен оның 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"Архив тізімінде site және nginx ішіндегі екі файл мен SHA256SUMS болуы тиіс. Checksum тасымалдау кезіндегі өзгерісті табуға көмектеседі; шабуылшы файлды да, checksum тізімін де ауыстырса, түпнұсқалықты растамайды. Сенімді арна мен қолжетімділікті қорғау қажет.
Көшірмені басқа компьютерге жіберіңіз
Келесі блок клиент компьютерінде орындалады. remote_backup мәніне серверде басып шығарылған нақты жолды жазыңыз. REPLACE үлгісін және 203.0.113.10 мекенжайын ауыстырыңыз; mktemp жасаған кездейсоқ соңғы бөлікті болжауға болмайды. SSH host identity сенімді мәнмен расталуы тиіс; тексеруді айналып өтпеңіз.
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/"SCP тасымалдауды шифрлайды, бірақ tar.gz архивінің дискіде сақталуы өздігінен шифрланбайды. Клиенттегі көшірмеге қолжетімділікті шектеп, қажет болса сақтау орнын шифрлаңыз. Сол VPS ішіндегі басқа каталог тәуелсіз backup емес. Кіру ақауында SSH нұсқаулығын қараңыз.
Жаңа бос каталогқа шығарып тексеріңіз
Клиентте алдымен архив checksum нәтижесі OK болғанын тексеріңіз. Қате болса, күтілетін checksum мәнін жаңадан есептеп алмастырмаңыз. Тек сенімді архивті жаңа бос каталогқа шығарыңыз; / каталогын немесе sudo қолданбаңыз.
(
cd "$recovery_dir" &&
sha256sum -c static-site.tar.gz.sha256
)
tar -tzf "$recovery_dir/static-site.tar.gz"Екі файлдың checksum тексеруі де OK және сынақ бетінің тақырыбы көрінуі керек:
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"keep-old-files және no-same-owner параметрлері бар файлды алмастырмауға және архив иесін қолданбауға көмектеседі. Бұл тек файл мазмұнының тексеруі: бастапқы owner, ACL, service күйі және барлық тәуелділік қалпына келді деген сөз емес.
Толық қызметті қалпына келтіру үшін не жетіспейді
Nginx конфигурациясы жаттығуда белсенді емес. Жаңа серверде қолданар алдында жолдарды, include, модульдерді, рұқсаттарды және сертификаттарды тексеріңіз. nginx -t сол жаңа серверде орындалуы, одан кейін сыртқы HTTP/HTTPS сынағы өтуі керек. Ескі сервердегі syntax test жаңа ортаның дұрыстығын дәлелдемейді.
Сертификат private key бұл жаттығуға кірмейді. Оны қорғалған backup арқылы қалпына келтіріңіз немесе сертификатты қайта шығарыңыз. Жұмыс істеп тұрған дерекқор каталогын жай tar жасау consistent backup емес; дерекқорға сәйкес backup әдісі керек. Snapshot үшін retention, ақауға тәуелділік және restore тексеріледі. Snapshot бар болуы файлды тәуелсіз экспорттап қалпына келтіре алатыныңызды дәлелдемейді.
Дерек жоғалту мен қалпына келтіру уақытын өлшеңіз
RPO — жол берілетін дерек жоғалту аралығы, RTO — қалпына келтіруге берілетін уақыт. 24 сағат және 60 минут — мақсат мысалдары, осы жаттығудың өлшенген нәтижесі емес. Күнделікті backup сәтті әрі қалпына келетін нүкте жасалғанда ғана сол аралықты қамтамасыз етеді.
Сынақ күнін, release нұсқасын, destination, retention, checksum, басталу және аяқталу уақытын, жетіспеген тәуелділіктер мен рұқсаттарды жазыңыз. Толық recovery уақытына кіруді қайтару, жаңа сервер жасау, қызмет, сертификат, DNS және сыртқы HTTPS тексеруі кіреді. Жергілікті архивті тез ашу толық recovery жылдамдығы емес.
Бірнеше қалпына келтіру нүктесін сақтап, failed backup тапсырмаларына alert орнатыңыз. Келесі сынақты жоспарлаңыз; файлдың бар болуы оның жарамды көшірме екенін дәлелдемейді.
Жиі қойылатын сұрақтар
Бұл бүкіл сервердің backup-ы ма?
Жоқ. Екі файлдың тәуелсіз көшірмесін тексеретін жаттығу. Қолданбаның барлық дерегі, қызметтері және тәуелділіктері бөлек қамтылуы керек.
Checksum неге жеткіліксіз?
Ол өзгерісті табады, бірақ сенімсіз файл мен checksum бірге ауыстырылса, түпнұсқалықты дәлелдемейді.
Сол сервердегі екінші каталог жарай ма?
Ол сервер жоғалғанда бірге жоғалуы мүмкін. Тәуелсіз ортаға көшіріп, қалпына келтіруді сынаңыз.