Практическо ръководство / Резервни копия

Архивиране на VPS: възстановете проверено копие

Архивиране на VPS има практическа стойност, когато копието е достъпно извън сървъра и възстановява нужните файлове. Упражнението използва два тестови файла, tar, SSH и SHA-256, без да променя работещ сайт.

· Обновено: · Около 4 минути за четене

Съдържание

Определете границите на упражнението

Използвайте Bash, GNU tar, sha256sum и OpenSSH на Ubuntu или Linux/WSL клиент. Дръжте един терминал на сървъра и друг на отделен компютър отворени, за да се запазят променливите. Спрете при всяка грешка.

Ще архивирате два временни файла в домашната си директория. Не се активира Nginx конфигурация, не се променя защитната стена и извличането не се изпълнява като root. За истински сайт опишете отделно всички ресурси, зависимости и DNS записи. Два файла не са пълен архив на приложение или машина.

Подгответе два тестови файла

На сървъра създайте частна директория за упражнението. 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"

Запазете показания път. Тази стъпка не копира частни TLS ключове или системни директории. Не заменяйте примерните файлове с активна база данни; за нея е нужен съгласуван архив чрез собствените ѝ инструменти.

Създайте архив и контролни суми

На сървъра запишете сумите на двата файла, създайте архив с относителни пътища и изчислете сумата на архива. Не променяйте файловете между тези операции.

(
    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. Външната сума открива промяна на прехвърления архив; вътрешният списък проверява извлечените файлове. Нито една сума не удостоверява произхода, ако някой може да замени и данните, и очакваната сума.

Копирайте на отделен компютър

На клиентския компютър задайте remote_backup като точната директория export, показана от сървъра. Заменете адреса, потребителя и ключа с вашия работещ достъп. REPLACE е заместител, не действителната добавка от 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/"

Проверете хост отпечатъка по доверен път преди приемане на нов сървър. При грешка следвайте SSH диагностиката; не изключвайте проверката на ключа.

SCP защитава преноса чрез SSH. tar.gz е компресиран, но не шифрован файл. Защитете приемащия профил и носителя и използвайте шифроване при съхранение, ако данните го изискват. Втора папка на същия VPS не е независимо копие извън него.

Проверете и възстановете в празна папка

На клиента проверете архива преди извличане. Продължете само при OK. При грешка разследвайте или повторете прехвърлянето; не заменяйте очакваната сума.

(
    cd "$recovery_dir" &&
    sha256sum -c static-site.tar.gz.sha256
)
tar -tzf "$recovery_dir/static-site.tar.gz"

Извлечете този доверен архив в нова празна директория. keep-old-files отказва замяна на съществуващи файлове, а no-same-owner не възстановява чужда собственост. Не задавайте / като цел и не използвайте sudo.

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"

Очаквайте OK за site/index.html и nginx/first-site.conf и примерното заглавие на страницата. Това проверява съдържанието, не продукционните права, ACL, работеща услуга или всички зависимости.

Разделете възстановяване на файлове и на услуга

Възстановената конфигурация остава неактивен текстов файл. На отделен заместващ сървър прегледайте пътища, включени настройки, модули, права и сертификати. Проверете цялата Nginx конфигурация там преди презареждане, после HTTP/HTTPS отвън.

Архивът умишлено не съдържа TLS частни ключове. Планирайте преиздаване на сертификат или отделно защитено копие. Не архивирайте активни файлове на база данни по тази рецепта.

Моментните снимки на доставчика могат да помагат, но проверете срока, мястото на съхранение и процедурата за връщане. Налична снимка не доказва възстановяване на сайта върху друг хост.

Запишете целите и резултата

RPO е приемливата загуба на данни, измерена във време; RTO е целевото време за възстановяване на услугата. За малък статичен сайт 24 часа RPO и 60 минути RTO са примерни бизнес цели, не измерени резултати. Ежедневният график е полезен само когато копията успяват и са възстановими.

На малък екран плъзнете таблицата настрани, за да видите всички колони.

Какво да запишетеКакво показва
Час и версия на архиваКои данни могат да се върнат
Независима цел и срокКъде и колко време се пази копието
Резултат от двете проверкиДали избраните байтове са възстановени
Начало и край на възстановяванетоВреме за определените стъпки
Липсващи файлове и зависимостиОставаща работа преди пускане
Външна HTTPS проверкаДали целият сайт е върнат

Измерете целия процес, включително достъп, нов сървър, конфигурация, сертификати и DNS, преди да приемете RTO за постижимо. Бързото извличане не е тест за възстановяване след авария. Запазете няколко подходящи копия и наблюдавайте неуспешните задачи. Включете това в избора на ресурси и поддръжка.

Ограничено файлово упражнение от EN. Локалният тест с GNU инструменти, описан в английския източник, не потвърждава отдалечен SSH пренос, сертификати или активна Nginx услуга.

Често задавани въпроси

Трябва ли да изтрия оригиналния сайт за теста?

Не. Възстановяване в отделна празна папка и проверка на сумите изпитват копието без прекъсване. Цялата услуга се изпитва в друга среда.

OK от SHA-256 означава ли пълен архив?

Потвърждава само файловете в списъка. Не открива пропусната база данни, изображение, тайна или DNS настройка.

Следващи полезни стъпки

Изберете ресурси с план за възстановяване.

Сравнете офертата с приложението и актуалните условия на доставчика.

Разгледайте сървърите

Партньорска връзка · Проверете офертата преди поръчка.