SSD Nodes Learn
మార్గదర్శకాలు Matt Connorద్వారా Matt Connor · అప్‌డేట్ చేయబడింది 2026-07-25

Restic తో VPS బ్యాకప్ సెటప్ ఎలా

Restic తో మీ VPS డేటాను ఎన్‌క్రిప్ట్ చేసి మరో సర్వర్ లేదా S3 స్టోరేజ్ కి పంపండి. Ubuntu 24.04లో systemd టైమర్ తో ప్రతిరోజూ బ్యాకప్ తీసుకోండి, రిస్టోర్ డ్రిల్ తో నిరూపించండి.

అదే సర్వర్‌లో ఉన్న బ్యాకప్ ఒక బ్యాకప్ కాదు

Restic అనేది ఒక ఉచిత, ఓపెన్ సోర్స్ బ్యాకప్ సాధనం. ఇది మీ ఫైళ్ల ఎన్‌క్రిప్టెడ్, డిడప్లికేటెడ్ స్నాప్‌షాట్‌లను మరెక్కడో ఉన్న రిపోజిటరీకి పంపుతుంది: రెండవ VPS, ఇంట్లో ఉన్న ఒక మెషీన్, లేదా S3-అనుకూల ఆబ్జెక్ట్ స్టోరేజ్. ఈ గైడ్ దాన్ని Ubuntu 24.04లో సెటప్ చేస్తుంది. ఇన్‌స్టాలేషన్ నుండి SFTP ద్వారా ఒక రిపోజిటరీ వరకు, మొదటి బ్యాకప్, ప్రతిరోజూ రాత్రి నడిచే systemd టైమర్, రిటెన్షన్ పాలసీ, మరియు మొత్తం పని సరిగ్గా జరుగుతుందని నిరూపించే రిస్టోర్ డ్రిల్ వరకు ఇది వివరిస్తుంది. గమ్యం తప్పనిసరిగా మరొక మెషీన్ అయి ఉండాలి. ఎందుకంటే అదే సర్వర్‌లో ఉన్న కాపీ సర్వర్‌తో పాటు కూడా నశిస్తుంది.

బ్యాకప్ తీసే సర్వర్‌లోనే ఉన్న ఒక backup/ డైరెక్టరీ ఒక్కటే ఒక సమస్య నుండి మిమ్మల్ని రక్షిస్తుంది: ప్రమాదవశాత్తూ ఒక ఫైల్‌ను డిలీట్ చేయడం. అది పాడైన డిస్క్‌ను తట్టుకోలేదు, ఎందుకంటే అది ఆ డిస్క్‌లోనే ఉంది. రూట్ యాక్సెస్ ఉన్న దుర్మార్గుడిని అది తట్టుకోలేదు, ఎందుకంటే వాళ్ళు ముందుగా ఆ కాపీలను డిలీట్ చేసేస్తారు. VPS నే తొలగించే అకౌంట్ పొరపాటును అది తట్టుకోలేదు. ప్రపంచంలోనే అత్యంత అసమర్థమైన డేటాసెంటర్ డేటా ఉన్న అదే శ్రేణిలో ఉన్న backup_final_v2_REAL పేరుగల ఒక టార్‌బాల్ గురించి జోక్ చేస్తుంది. మనలో చాలా మంది సరిగ్గా అదే చేశాము కాబట్టి ఆ జోక్ సరిగ్గా మనసుకు హత్తుతుంది. సర్వర్‌కు బయట ఉండటమే నియమం. దాన్ని పాటించడానికి restic అనేది అత్యంత సులభమైన మార్గం.

రెస్టిక్ నాలుగు అంశాల్లో

రిపోజిటరీ. రెస్టిక్ రాసే ప్రదేశం. ఇది రెస్టిక్ స్వంత ఫార్మాట్‌లో ఒక డైరెక్టరీ. ఇది ఎన్‌క్రిప్టెడ్ బ్లాబ్‌లతో నిండి ఉంటుంది. దీన్ని కేవలం రెస్టిక్ మాత్రమే చదవగలదు. మీరు దీన్ని ఎప్పుడూ మాన్యువల్‌గా సవరించకూడదు. మీరు రెస్టిక్ కమాండ్‌లు మరియు -r చిరునామా ద్వారా దీనితో సంవదిస్తారు.

స్నాప్‌షాట్. మీరు బ్యాకప్ చేసిన ఫైళ్ల ఒక నిర్దిష్ట సమయ చిత్రం. ప్రతి బ్యాకప్ రన్ ఒక స్నాప్‌షాట్‌ను సృష్టిస్తుంది. ప్రతి స్నాప్‌షాట్‌ను విడిగా పునరుద్ధరించవచ్చు. ప్రతి స్నాప్‌షాట్ ఆ క్షణంలో మీ డేటా యొక్క పూర్తి కాపీ వలె ప్రవర్తిస్తుంది.

డిడప్లికేషన్. రెస్టిక్ ఫైళ్లను కంటెంట్-డిఫైన్డ్ చంక్‌లుగా విభజిస్తుంది. రిపోజిటరీ ఇంకా చూడని చంక్‌లను మాత్రమే అప్‌లోడ్ చేస్తుంది. మొదటి బ్యాకప్ ప్రతిదీ అప్‌లోడ్ చేస్తుంది. తర్వాత ప్రతి రన్ సుమారు మారిన విషయాలను మాత్రమే అప్‌లోడ్ చేస్తుంది. 20 GBలో 50 MB మారిన ఒక రాత్రి స్నాప్‌షాట్ సుమారు 50 MB ఖర్చు తెస్తుంది. అందువల్ల డజన్ల కొద్దీ స్నాప్‌షాట్‌లను ఉంచడం తక్కువ ఖర్చుతో సాధ్యపడుతుంది.

డిఫాల్ట్‌గా ఎన్‌క్రిప్షన్. ఒక రెస్టిక్ రిపోజిటరీ ఎల్లప్పుడూ ఎన్‌క్రిప్టెడ్‌గా (AES-256) ఉంటుంది. ప్రతి కమాండ్‌కు రిపోజిటరీ పాస్‌వర్డ్ అవసరం. బ్యాకప్ హోస్ట్ లేదా స్టోరేజ్ ప్రొవైడర్ ఎన్‌క్రిప్టెడ్ బ్లాబ్‌లను మాత్రమే చూస్తాయి. దీని యొక్క కఠినమైన పర్యవసామం: పాస్‌వర్డ్ పోతే డేటా శాశ్వతంగా పోతుంది, అది డిజైన్ ప్రకారమే. ఈ సర్వర్ కాని ప్రదేశంలో పాస్‌వర్డ్ కాపీని ఉంచండి. ఇది చాలా ముఖ్యమైనది కాబట్టి దీని గురించి కింద మరో రెండుసార్లు ప్రస్తావిస్తారు.

Ubuntu 24.04 పై restic ని సంస్థాపించండి

sudo apt update && sudo apt install -y restic
restic version

Ubuntu 24.04 లో ఇది restic 0.16.4 ని సంస్థాపిస్తుంది. ప్రస్తుత అధికారిక విడుదల 0.19.1. ఈ తేడా ఉన్నది ఎందుకంటే LTS (దీర్ఘకాల మద్దతు) విడుదల ప్యాకేజీ వెర్షన్‌లను స్థిరీకరిస్తుంది. ఇక్కడ అది ప్రభావం చూపదు: 0.16.4 ఈ గైడ్‌లోని ప్రతిదీ చేస్తుంది. వేగ మెరుగుదలల కోసం కొత్త విడుదల కావాలంటే, restic ప్రాజెక్ట్ యొక్క GitHub విడుదలల పేజీ నుండి అధికారిక సింగిల్-బైనరీ బిల్డ్‌ను డౌన్‌లోడ్ చేయండి. దానిని bunzip2 తో అన్‌ప్యాక్ చేసి, /usr/local/bin/restic కి సంస్థాపించండి; restic సంస్థాపనకు ఇంకొకటి లేదు.

SFTP ద్వారా మరొక సర్వర్‌లో రిపాజిటరీని సృష్టించండి

మీకు గమ్యపు మెషీన్ అవసరం: రెండవ చిన్న VPS సాధారణ పరిష్కారం. SSH సర్వర్ మరియు ఖాళీ డిస్క్ ఉన్న ఏదైనా సిస్టమ్ పనిచేస్తుంది. Restic SFTP (SSH ద్వారా ఫైల్ బదిలీ)తో మాట్లాడుతుంది. కాబట్టి బ్యాకప్ హోస్ట్‌లో ఏమీ ఇన్‌స్టాల్ చేయాల్సిన అవసరం లేదు. ఈ గైడ్‌లో బ్యాకప్ హోస్ట్ 10.0.0.12, దానిలో వినియోగదారుడి పేరు restic. ఆ వినియోగదారుడికి backup పేరు పెట్టవద్దు: Ubuntu మరియు Debian ప్రతి ఇన్‌స్టాలేషన్‌లో backup (uid 34, లాగిన్ షెల్ లేదు) అనే రిజర్వ్డ్ సిస్టమ్ ఖాతాను అందిస్తాయి. కాబట్టి adduser backup విఫలమవుతుంది మరియు ssh backup@... nologinలో చిక్కుకుంటుంది.

రాత్రికి నడిచే జాబ్ బ్యాకప్ చేయబడుతున్న సర్వర్‌లో root వలె నడుస్తుంది. కాబట్టి rootకు బ్యాకప్ హోస్ట్‌కు కీ లాగిన్ అవసరం. పాస్‌ఫ్రేజ్ లేని ప్రత్యేక కీని సృష్టించండి, ఎందుకంటే అర్ధరాత్రి 3 గంటలకు దాన్ని టైప్ చేయడానికి ఎవరూ ఉండరు. ఆ తర్వాత దాన్ని కాపీ చేయండి:

sudo ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -N "" -C "web1-restic"
sudo ssh-copy-id -i /root/.ssh/id_ed25519.pub restic@10.0.0.12
sudo ssh restic@10.0.0.12 true && echo key login works

కీలు మీకు కొత్త అయితే, SSH కీ నిర్వహణ ప్రాథమికాలు ఆ మోడల్, అనుమతులు మరియు తర్వాత కీని ఎలా ఉపసంహరించాలో వివరిస్తుంది.

తరువాత, రిపాజిటరీ పాస్‌వర్డ్. root-మాత్రమే అనుమతి ఉన్న ఫైల్‌లోకి బలమైన పాస్‌వర్డ్‌ను సృష్టించండి:

openssl rand -base64 32 | sudo tee /root/.restic-password
sudo chmod 600 /root/.restic-password

ఇప్పుడు ముందుకు వెళ్లే ముందు ఆ పాస్‌వర్డ్‌ను మీ పాస్‌వర్డ్ మేనేజర్‌లోకి కాపీ చేయండి. ఈ VPS పనిచేయడం ఆగిపోతే, రిపాజిటరీ మరియు ఈ పాస్‌వర్డ్ కలిసి అన్నీ తిరిగి తెస్తాయి; పాస్‌వర్డ్ లేని రిపాజిటరీ ఏమీ తెస్తుంది కాదు.

రిపాజిటరీని ప్రారంభించండి:

sudo restic -r sftp:restic@10.0.0.12:/srv/restic/web1 --password-file /root/.restic-password init
created restic repository 9f3c2a1b0d at sftp:restic@10.0.0.12:/srv/restic/web1

ప్రత్యామ్నాయ గమ్యం S3-అనుకూల ఆబ్జెక్ట్ స్టోరేజ్. మీకు రెండవ మెషీన్ నడపాలని లేనప్పుడు ఇది సరైన ఎంపిక. ఏదైనా S3-అనుకూల బకెట్ అదే విధంగా పనిచేస్తుంది; కేవలం చిరునామా మరియు రెండు క్రెడెన్షియల్ వేరియబుల్స్ మారుతాయి:

export AWS_ACCESS_KEY_ID=your-key-id
export AWS_SECRET_ACCESS_KEY=your-secret-key
sudo -E restic -r s3:https://s3.example.com/web1-backups --password-file /root/.restic-password init

init తర్వాత ప్రతిదీ రెండు గమ్యాలకు ఒకేలా ఉంటుంది. ఈ గైడ్ మిగతా భాగం SFTP చిరునామాను చూపిస్తుంది; మీది దాని స్థానంలో ఉపయోగించండి.

మొదటి బ్యాకప్, మినహాయింపులతో

మొత్తం ఫైల్‌సిస్టమ్‌ను కాకుండా, మీరు మళ్లీ ఇన్‌స్టాల్ చేయలేని డేటాను బ్యాకప్ చేయండి. ఆపరేటింగ్ సిస్టమ్ తిరిగి ఇన్‌స్టాల్ చేయడం ద్వారా వస్తుంది; మీ కాన్ఫిగరేషన్ మరియు మీ డేటా రావు. సాధారణ VPS అంటే దాని అర్థం /etc, /home, మరియు మీ అప్లికేషన్లు స్టేట్‌ను దాచిపెట్టే చోటులు, ఉదాహరణకు /srv లేదా /var/www. క్యాష్‌లను మినహాయించండి, ఎందుకంటే అవి పెద్దవిగా ఉంటాయి, ప్రతిరోజూ మారుతూ ఉంటాయి, మరియు అవి తిరిగి స్వయంగా నిర్మించుకుంటాయి:

sudo restic -r sftp:restic@10.0.0.12:/srv/restic/web1 --password-file /root/.restic-password backup /etc /home /srv --exclude '/home/*/.cache'
Files:        4181 new,     0 changed,     0 unmodified
Added to the repository: 731.204 MiB (312.418 MiB stored)
snapshot 5b8a3f2c saved

మొదటి రన్ ప్రతిదీ అప్‌లోడ్ చేస్తుంది, కాబట్టి అది కొంత సమయం తీసుకుంటుంది. అదే కమాండ్‌ను మళ్లీ రన్ చేయండి మరియు అది కొన్ని సెకన్లలో పూర్తవుతుంది, కొన్ని ఫైళ్లు మారాయని మరియు కొన్ని MiB జోడించబడ్డాయని నివేదిస్తుంది, ఎందుకంటే డిడప్లికేషన్ కేవలం కొత్త చంక్‌లను మాత్రమే అప్‌లోడ్ చేస్తుంది. మీ దగ్గర ఉన్నవి జాబితా చేయండి:

sudo restic -r sftp:restic@10.0.0.12:/srv/restic/web1 --password-file /root/.restic-password snapshots

ప్రతి స్నాప్‌షాట్ ఒక IDని, సమయాన్ని, మరియు అందులో ఉన్న పాత్‌లను చూపుతుంది. ఆ IDలు మీరు రిస్టోర్ చేసుకునే వాటి నుండి ఉంటాయి.

systemd టైమర్‌తో రాత్రిపూట నడిచే రన్‌లు

ప్రతి కమాండ్‌పై రిపాజిటరీ చిరునామాను టైప్ చేయడం అలవాటు కాదు. మీరు మాన్యువల్‌గా నడిపే బ్యాకప్ ఒక నెలలోపల ఆగిపోతుంది. ఒక స్క్రిప్ట్, ఒక టైమర్‌తో ఈ రెండు సమస్యలూ తీరిపోతాయి. ఈ స్క్రిప్ట్ restic చదివే రెండు ఎన్విరాన్‌మెంట్ వేరియబుల్స్, RESTIC_REPOSITORY మరియు RESTIC_PASSWORD_FILE, సెట్ చేస్తుంది. కాబట్టి దానిలోని ప్రతి కమాండ్ చిన్నగానే ఉంటుంది:

sudo nano /usr/local/bin/restic-backup.sh
#!/usr/bin/env bash
set -euo pipefail
export RESTIC_REPOSITORY='sftp:restic@10.0.0.12:/srv/restic/web1'
export RESTIC_PASSWORD_FILE=/root/.restic-password

restic backup /etc /home /srv --exclude '/home/*/.cache'
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
restic check
sudo chmod 700 /usr/local/bin/restic-backup.sh

forget మరియు check లైన్ల గురించి తదుపరి రెండు విభాగాల్లో వివరించబడింది. ఇప్పుడు షెడ్యూల్: స్క్రిప్ట్‌ను నడిపే oneshot సర్వీస్, మరియు ప్రతి రాత్రి 03:00 కి దాన్ని ట్రిగ్గర్ చేసే టైమర్. ఇక్కడ టైమర్ ఒక cron లైన్‌కంటే మెరుగైనది. ఎందుకంటే రన్ జర్నల్‌కు లాగ్ అవుతుంది. మరియు సర్వర్ డౌన్‌టైమ్ తర్వాత ఆన్‌లైన్ అవగానే Persistent=true జరగని బ్యాకప్‌ను వెంటనే నడుపుతుంది.

# /etc/systemd/system/restic-backup.service
[Unit]
Description=Nightly restic backup
Wants=network-online.target
After=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/restic-backup.sh
# /etc/systemd/system/restic-backup.timer
[Unit]
Description=Run the nightly restic backup

[Timer]
OnCalendar=*-*-* 03:00:00
RandomizedDelaySec=15m
Persistent=true

[Install]
WantedBy=timers.target

టైమర్‌ను ఎనేబుల్ చేయండి. తర్వాత సర్వీస్‌ను ఒకసారి మాన్యువల్‌గా నడిపి పనిచేసేలా చూడండి:

sudo systemctl daemon-reload
sudo systemctl enable --now restic-backup.timer
sudo systemctl start restic-backup.service
sudo journalctl -u restic-backup.service -f

systemctl list-timers తదుపరి రన్ ఎప్పుడు ట్రిగ్గర్ అవుతుందో చూపిస్తుంది. టైప్ చేయకుండా యూనిట్ ఫైళ్ల జతను కూడా జనరేట్ చేయవచ్చు:

ToolGenerate the backup service and timer

ఈ రెండు ఫైళ్ల వెనుక ఉన్న పూర్తి ప్యాటర్న్, క్యాలెండర్ సింటాక్స్ మరియు ఒక సర్వీస్ కలిగి ఉండే హార్డెనింగ్ డైరెక్టివ్‌లతో సహా, VPSలో ఒక ప్రోగ్రామ్‌ను systemd సర్వీస్‌గా నడపడంలో ఉంది.

బ్యాకప్ అనేది మీరు దాన్ని పునరుద్ధరించే వరకు ఒక పుకారే

ఆ వాక్యాన్ని ఒక ఆదేశంగా పరిగణించండి. ప్రతి రాత్రి ఆకుపచ్చ రంగులో నడిచే బ్యాకప్ జాబ్ కేవలం ఒక జాబ్ నడిచిందని మాత్రమే నిరూపిస్తుంది; మీ డేటా తిరిగి వస్తుందని అది నిరూపించదు. రెండు తనిఖీలు ఈ అంతరాన్ని పూరిస్తాయి.

మొదటగా, restic check, దీన్ని స్క్రిప్ట్ ఇప్పటికే ప్రతి రాత్రి నడుపుతోంది. ఇది రిపోజిటరీ నిర్మాణాన్ని మరియు ఇండెక్స్‌ను ధృవీకరిస్తుంది, కాబట్టి బ్యాకప్ హోస్ట్‌లో నిశ్శబ్ద అవినీతి పునరుద్ధరణ రోజున కాకుండా మరుసటి రాత్రి పట్టబడుతుంది. నెలకు ఒకసారి, లోతైన వెర్షన్‌ను అమలు చేయండి, ఇది వాస్తవ డేటాలో యాదృచ్ఛిక పదవ వంతును డౌన్‌లోడ్ చేసి క్రిప్టోగ్రాఫిక్‌గా ధృవీకరిస్తుంది:

sudo -i
export RESTIC_REPOSITORY='sftp:restic@10.0.0.12:/srv/restic/web1'
export RESTIC_PASSWORD_FILE=/root/.restic-password
restic check --read-data-subset=10%

ఎందుకంటే ఈ సబ్‌సెట్ ప్రతిసారి యాదృచ్ఛికంగా ఉంటుంది, నెలవారీ అమలులు పూర్తి డౌన్‌లోడ్ కోసం ఎప్పుడూ ఖర్చు చేయకుండా మొత్తం రిపోజిటరీ అంతటా పని చేస్తాయి.

రెండవది, పునరుద్ధరణ డ్రిల్. పై నుండి రూట్ షెల్‌లోనే, తాజా స్నాప్‌షాట్ నుండి ఒక నిజమైన డైరెక్టరీని స్క్రాచ్ లొకేషన్‌కు పునరుద్ధరించండి మరియు దాన్ని లైవ్ ఫైళ్లతో పోల్చండి:

restic restore latest --target /srv/restore-drill --include /etc/ssh
diff -r /etc/ssh /srv/restore-drill/etc/ssh

diff ఏమీ ప్రింట్ చేయకపోవడం అంటే ప్రతి బైట్ ఒకేలా తిరిగి వచ్చిందని అర్థం, ఇది పట్టింపు ఉన్న ఏకైక ఆధారం. తరువాత /srv/restore-drill ను తొలగించండి. ఈ డ్రిల్‌ను నెలవారీగా చేయండి, మరియు సంవత్సరానికి ఒకటి లేదా రెండుసార్లు పూర్తి వెర్షన్‌ను చేయండి: తాజా స్నాప్‌షాట్ మొత్తాన్ని ఒక స్క్రాచ్ VPS పై పునరుద్ధరించండి మరియు మీ అప్లికేషన్ వాస్తవంగా దాని నుండి ప్రారంభమవుతుందో లేదో తనిఖీ చేయండి. ఒత్తిడిలో మీకు ఇది పని చేయాల్సిన రోజున, అది మీరు ఇప్పటికే చేసిన ఒక రొటీన్‌గా ఉండాలి.

నిలుపుదల: forget మరియు prune

విధానం లేకుండా, స్నాప్‌షాట్‌లు శాశ్వతంగా పేరుకుంటాయి మరియు రిపోజిటరీ కేవలం పెరుగుతూనే ఉంటుంది. స్క్రిప్ట్‌లోని forget వరుస ప్రతి రాత్రి ఒక విధానాన్ని వర్తింపజేస్తుంది: --keep-daily 7 గత ఏడు రోజులకు రోజుకు ఒక స్నాప్‌షాట్‌ను ఉంచుతుంది, --keep-weekly 4 నాలుగు వారాలకు వారానికి ఒకటి చొప్పన ఉంచుతుంది, మరియు --keep-monthly 6 ఆరు నెలలకు నెలకు ఒకటి చొప్పన ఉంచుతుంది. ఏ నియమం ద్వారా రక్షించబడని ప్రతిదీ మరచిపోబడుతుంది.

forget ఒక్కటే కేవలం స్నాప్‌షాట్ రికార్డులను తొలగిస్తుంది; డేటా భాగాలు ఏదైనా వాటిని తొలగించే వరకు రిపోజిటరీలోనే ఉంటాయి. --prune అదే పని చేస్తుంది: మిగిలిన ఏ స్నాప్‌షాట్ కూడా సూచించని భాగాలను కనుగొని తొలగిస్తుంది, అప్పుడే నిజంగా డిస్క్ స్థలం తిరిగి వస్తుంది. Prune నిజమైన రిపోజిటరీ పనిని చేస్తుంది, కాబట్టి పెద్ద రిపోజిటరీలో కొంతమంది forget ని రాత్రికి మరియు --prune ని వారానికి నడుపుతారు; సాధారణ VPS పరిమాణాల వద్ద, రాత్రికి నడపడం సరే.

డేటాబేస్‌లు: ముందుగా డంప్ తీయండి, తర్వాత ఆ డంప్‌ను బ్యాకప్ చేయండి

Restic ఫైళ్లను చదువుతున్నప్పుడే కాపీ చేస్తుంది. ఒక డేటాబేస్ తన ఫైళ్లకు నిరంతరం రాస్తూనే ఉంటుంది. రాసే మధ్యలో పట్టుబడిన ప్రత్యక్ష డేటాబేస్ ఫైలు ఒక పాడైన డేటాబేస్‌గా పునరుద్ధరిస్తుంది, ఎందుకంటే ఆ కాపీ రాసేముందు మరియు తర్వాత వచ్చిన పేజీలను కలిపి ఉంటుంది. పరిష్కారం ప్రామాణికమైనది: డేటాబేస్ ఇంజిన్ ఒక స్థిరమైన ఎగ్జాస్ట్‌ను ఒక ఫైలుకు ఉత్పత్తి చేసేలా చేయండి, తర్వాత restic ఆ ఫైలును బ్యాకప్ చేసేలా అనుమతించండి.

PostgreSQL కోసం, restic-backup.sh పైభాగాన ఒక డంప్ లైన్‌ను జోడించండి, restic backup కమాండ్‌కు ముందు, మరియు ఆ డంప్ డైరెక్టరీని బ్యాకప్ పాత్‌లలో చేర్చండి:

mkdir -p /var/backups/db
sudo -u postgres pg_dump myapp | gzip > /var/backups/db/myapp.sql.gz

MariaDB మరియు MySQL కోసం mysqldump అదే పాత్రను పోషిస్తుంది. ఈ మొత్తం ప్యాటర్న్‌కు ఒక సంపూర్ణ ఉదాహరణ కోసం, Nextcloud బ్యాకప్ విభాగం మెయింటెనెన్స్ మోడ్‌ను ఆన్ చేస్తుంది, Postgres‌ను డంప్ చేస్తుంది, మరియు ఫైళ్లను ఒకే స్థిరమైన సమితిగా కాపీ చేస్తుంది, ప్రతి రాత్రి restic సర్వర్ నుండి తీసుకువెళ్లాల్సిన సరిగ్గా ఆ సమితే. SQLite కూడా అదే ఆలోచనే, కానీ చిన్న సాధనంతో: Vaultwarden గైడ్ కంటైనర్‌ను కొన్ని సెకన్ల పాటు ఆపి db.sqlite3 యొక్క కోల్డ్ కాపీ తీసుకుంటుంది, మరియు ఆ ఆర్కైవ్‌నే restic సర్వర్ నుండి పంపుతుంది.

FAQ

restic బ్యాకప్‌లు ఎన్‌క్రిప్ట్ చేయబడతాయా?

అవును, ఎల్లప్పుడూ. ప్రతి restic రిపోజిటరీ AES-256తో ఎన్‌క్రిప్ట్ చేయబడుతుంది. ఎన్‌క్రిప్ట్ చేయని మోడ్ లేదు. ప్రతి కమాండ్‌కు రిపోజిటరీ పాస్‌వర్డ్ అవసరం. రిపోజిటరీని నిల్వ చేసే మెషీన్ లేదా ప్రొవైడర్ ఎన్‌క్రిప్ట్ చేయబడిన బ్లాబ్‌లను మాత్రమే కలిగి ఉంటాయి. కాబట్టి బ్యాకప్ హోస్ట్ కంప్రమైస్ అయినా మీ ఫైళ్లు బయటపడవు. ఒప్పందం స్పష్టంగా ఉంది: పాస్‌వర్డ్ లేకుండా డేటాను ఎవరూ రికవర్ చేయలేరు. కాబట్టి దాని కాపీని సర్వర్ నుండి దూరంగా నిల్వ చేయండి.

restic ఇంక్రిమెంటల్ బ్యాకప్‌లను చేస్తుందా?

ప్రతి restic స్నాప్‌షాట్ ఫుల్ బ్యాకప్ లాగా పనిచేస్తుంది, అదే సమయంలో ఇంక్రిమెంటల్ స్టోరేజీ ఖర్చు మాత్రమే అవుతుంది. restic ఫైళ్లను చంక్‌లుగా విభజిస్తుంది. రిపోజిటరీ ఇప్పటికే నిల్వ చేయని చంక్‌లను మాత్రమే అప్‌లోడ్ చేస్తుంది. కాబట్టి రాత్రికి ఒకసారి నడిచే ప్రాసెస్ ఆ రోజు మారిన డేటాను దాదాపు బదిలీ చేస్తుంది. సాంప్రదాయ ఇంక్రిమెంటల్ పద్ధతుల మాదిరి ఇందులో రీప్లే చేయడానికి గొలుసు లేదు. ఏ స్నాప్‌షాట్ అయినా నేరుగా రిస్టోర్ అవుతుంది. పాత స్నాప్‌షాట్‌ను తొలగించడం కొత్తదాన్ని ఎప్పుడూ పాడు చేయదు.

restic బ్యాకప్ నుండి ఫైళ్లను ఎలా రిస్టోర్ చేస్తాను?

స్నాప్‌షాట్ ID కనుగొనడానికి restic snapshots నడపండి. ఆపై దాన్ని రిస్టోర్ చేయడానికి restic restore <id> --target /some/empty/dir నడపండి. కేవలం ఒక భాగాన్ని మాత్రమే రిస్టోర్ చేయడానికి --include /path జోడించండి. ID స్థానంలో latest పనిచేస్తుంది. restic టార్గెట్ కింద అసలు డైరెక్టరీ నిర్మాణాన్ని మళ్లీ సృష్టిస్తుంది. కాబట్టి /etc/ssh ను రిస్టోర్ చేయడం వలన అది /some/empty/dir/etc/ssh లో అవుతుంది. అవసరం రాకముందే దీన్ని ప్రాక్టీస్ చేయండి. ఎందుకంటే పరీక్షించని బ్యాకప్ అనేది కేవలం ఊహ మాత్రమే.

restic బ్యాకప్‌ను ఎంత తరచుగా నడపాలి?

సర్వర్‌కు రాత్రికి ఒకసారి అనేది సరైన కనీస పౌనఃపున్యం. డిడప్లికేషన్ దీన్ని తక్కువ ఖర్చుతో చేస్తుంది. ప్రతి రన్ చివరిసారిగా మారిన చంక్‌లను మాత్రమే అప్‌లోడ్ చేస్తుంది. వేగంగా మారే డేటా లేదా ఒక్క రోజు పోయినా నష్టం వచ్చే డేటాను కొన్ని గంటలకోసారి అదే టైమర్ ప్యాటర్న్‌తో నడపవచ్చు. పౌనఃపున్యం అనేది సులభమైన భాగం. అలాగే restic check ను క్రమం తప్పక నడపండి. నెలకోసారి రిస్టోర్ డ్రిల్ నడపండి. ఎందుకంటే ధృవీకరణ లేని షెడ్యూల్ అనేది మిథ్యా నిరాశ.

నా restic రిపోజిటరీ పాస్‌వర్డ్ పోతే ఏమవుతుంది?

బ్యాకప్‌లు రికవర్ కావు. restic ఎన్‌క్రిప్షన్‌కు బ్యాక్‌డోర్ లేదు, రీసెట్ లేదు. కాబట్టి పాస్‌వర్డ్ అనేది బ్యాకప్‌ల అంతే ముఖ్యం. మీ పాస్‌వర్డ్ మేనేజర్‌లో ఒక కాపీ ఉంచండి. బ్యాకప్ చేసిన సర్వర్ కాని మరేదైనా మన్నికైన చోట కూడా ఉంచండి. మీకు ఇంకా యాక్సెస్ ఉన్నప్పుడు, restic key add అదే రిపోజిటరీకి రెండవ పాస్‌వర్డ్‌ను రిజిస్టర్ చేయగలదు. ఇది మీకు ఒక అదనపు పాస్‌వర్డ్‌ను ఇస్తుంది.