VPS Ubuntu / backup da dawo da fayilolin VPS

Yi backup, sannan gwada dawo da fayilolin VPS

Backup yana da amfani idan ana iya dawo da abin da ake buƙata daga gare shi. Wannan gwajin yana ƙirƙirar fayilolin static na gwaji, ya fitar da archive zuwa wata kwamfuta, sannan ya dawo da su a sabon folder ba tare da rubuta kan deployment mai aiki ba.

· An sabunta: · Karatu: kusan minti 5

Sassan jagora

Fahimci iyakar gwajin da terminals

Ana amfani da Bash, GNU tar, sha256sum da OpenSSH. Umarni na sabar da na kwamfutarka suna cikin terminals daban; kiyaye variables a zaman da aka saita su. Idan wani mataki ya gaza, dakata ka warware shi kafin na gaba.

Wannan ba full-system backup ba ne. Fayiloli biyu na gwaji a home directory ba sa kunna Nginx, gyara firewall ko restore a root. Kada ka canza destination zuwa / ko live document root.

Ƙirƙiri fayiloli biyu da za a iya jefawa

A sabar, ƙirƙiri sample page da sample configuration don wannan gwajin:

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"

Waɗannan fixtures na gwaji ne. Ba a sanya configuration ɗin a sites-enabled ba, kuma ba a yi reload Nginx ba. Rubuta path ɗin da command ya bayar.

Zaɓi na fayilolin gaske: umarnin ƙasa yana karanta takamaiman page da config idan sun wanzu kuma kana da izinin karanta su. Duba paths da secrets da farko; dakatar da canje-canjen deployment yayin ɗaukar consistent copy idan ana buƙata. Kada ka haɗa private certificate keys ba tare da kariya da tsari ba.

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"

Idan shafi yana da CSS, images, includes ko wasu assets, rubuta su a inventory. Fayiloli biyu ba su wakilci kowane deployment ba. Database yana buƙatar nasa hanyar consistent backup; tar na live database directory bai wadatar ba.

Yi archive tare da checksums

A wannan zaman sabar, ƙirƙiri archive mai relative paths, checksum na fayilolin ciki da na archive:

(
    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"

Checksum yana gano sauyin bytes, amma idan mutum ya musanya archive da checksum duka, ba ya tabbatar da wanda ya ƙirƙira su. Kare source da inda ake ajiye su. Compressed archive ba encrypted archive ba ne.

Kwafi zuwa wata kwamfuta

A terminal na kwamfutarka, saita remote_backup da ainihin path da sabar ta buga, ka sauya placeholder ɗin REPLACE da IP ɗin misali. Tabbatar da host key kafin karɓar SSH, kada ka kashe tantancewa.

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/"

Wani folder a wannan VPS ɗin ba backup a waje ba ne. Ajiye kwafin a wata kwamfuta ko storage mai zaman kansa da permissions masu dacewa; yi encryption idan bayanan suna buƙatar hakan. Tsara retention da yadda za ka samu keys lokacin recovery.

Tabbatar, sannan dawo da fayiloli a sabon folder

A kwamfutarka, gwada checksum na archive. Dole sakamakon ya nuna OK kafin ci gaba:

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

Dawo da fayiloli a sabon empty folder. Bar tsoffin fayiloli a wurinsu, yi amfani da no-same-owner, kuma kada ka yi sudo ko extract a /.

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"

Inner checksums suna gwada bytes na waɗannan fayiloli. Ba sa tabbatar da ownership, ACLs, duk assets, configuration dependencies ko cewa Nginx zai tashi. Duba jerin abin da backup ya ƙunsa da abin da ya rasa.

Gwajin sabis ya fi gwajin archive girma

Don cikakken recovery, gina replacement environment, sanya fayilolin da aka dawo da su, sannan tabbatar da paths, includes, modules, permissions da certificates. Gwada configuration na wannan replacement, sannan HTTP/HTTPS daga waje. Gwajin tsohon Nginx configuration da ba a sauya ba ba ya gwada restore.

Certificates suna buƙatar sake bayarwa ko backup da aka kare na keys. Database yana buƙatar hanyar consistent export/backup ta database. Snapshot retention da failure domain na iya bambanta; samuwar snapshot ba hujjar independent export da aka gwada ba ce.

Saita abin da za a iya rasa da lokacin dawowa

RPO na saʼoʼi 24 da RTO na minti 60 misalan buƙatar kasuwanci ne kawai, ba sakamakon gwajin nan ba. Daily job yana cika burin backup ne idan ya yi nasara kuma kwafinsa yana samuwa don restore.

Rubuta release, lokacin backup, destination, retention, checksums, lokacin farawa da ƙarewa, dependencies da suka ɓace da sakamakon external HTTPS. Cikakken recovery time yana haɗa provisioning, DNS, access da certificates; lokacin extract a folder kaɗai ba shi ne lokacin dawo da sabis ba.

Yi gwajin a kai a kai, musamman bayan canjin manhaja ko tsarin ajiya. Duba recovery a kwatancen hosting da matakan sabon deployment.

Tambayoyi da amsoshi

Checksum OK yana nufin shafi zai yi aiki?

Yana tabbatar da bytes da aka gwada. Har yanzu ana buƙatar dependencies, permissions, configuration, certificates da gwajin sabis daga waje.

Zan iya mayar da backup kai tsaye kan shafi mai aiki?

A wannan gwajin, yi restore a sabon empty folder kawai. Shirya replacement da rollback kafin duk wani restore na production.

Snapshot ya isa?

Ya danganta da retention, failure domain da access. Ajiye kwafi mai zaman kansa na muhimman bayanai kuma gwada dawo da sabis daga gare shi.

Takardu da madogarai

Tushen Turanci ya bayyana gwajin fixtures a Windows Git Bash da GNU tools. Wannan ba gwajin live Nginx, SSH, certificate ko sabarka a wannan aikin ba ne. Commands an kiyaye su yadda suke a English.

Jagorori masu alaƙa