−25%

kwa Windows ya mwaka, hadi 31 Okt. Tazama mipango

EQVPS
Anza

Jinsi ya kufanya backup ya VPS kwa restic (iliyosimbwa, nje ya seva)

Backup za VPS zilizosimbwa na zisizo na marudio kwa restic: repository kwenye hifadhi inayoendana na S3 au seva nyingine, timer ya systemd, sheria za kuhifadhi na jaribio la kurejesha.

Kila mtu ana backup hadi anapojaribu kurejesha moja. Folda inageuka kuwa tupu, kazi ya cron ilikufa Machi, au kumbukumbu iko kwenye diski ileile iliyoharibika sasa hivi. restic inatatua mengi ya hayo: husimba upande wako, huhifadhi kila kipande cha data mara moja, na hufanya kurejesha faili moja kuwa rahisi kama kufanya backup ya seva nzima.

Hii ni mipangilio ambayo tungeiamini kweli, kwenye Ubuntu au Debian.

1. Sakinisha restic

apt update && apt install -y restic
restic self-update

Package za distribution huchelewa; self-update huleta toleo la sasa.

2. Chagua mahali pa repository

Repository haipaswi kuwa kwenye seva unayoilinda. Chaguo mbili za kawaida:

3. Hifadhi taarifa za kuingia

Weka kila kitu kwenye faili moja linalosomwa na root pekee, ili timer na shell yako zitumie mipangilio ileile:

cat > /root/.restic-env <<'EOF'
export RESTIC_REPOSITORY="s3:https://s3.example.com/my-bucket/web1"
export RESTIC_PASSWORD_FILE="/root/.restic-pass"
export AWS_ACCESS_KEY_ID="your-key-id"
export AWS_SECRET_ACCESS_KEY="your-secret"
EOF
openssl rand -base64 32 > /root/.restic-pass
chmod 600 /root/.restic-env /root/.restic-pass

Sasa nakili maudhui ya /root/.restic-pass kwenye kidhibiti chako cha manenosiri. Bila hilo, backup haziwezi kufunguliwa — si na wewe wala na mtu mwingine yeyote.

4. Anzisha na uendeshe backup ya kwanza

source /root/.restic-env
restic init
restic backup /etc /home /root /srv /var/www \
  --exclude-caches --exclude '/root/.cache'
restic snapshots

Rekebisha njia kulingana na mahali data yako ilipo kweli. Volume za Docker ziko chini ya /var/lib/docker/volumes; data za programu mara nyingi ziko ndani ya /srv au /opt.

5. Database: dump kwanza, kisha backup

Usifanye backup ya faili ghafi za database inayoendesha. Tengeneza dump muda mfupi kabla ya backup:

mkdir -p /var/backups/db
sudo -u postgres pg_dump -Fc mydb > /var/backups/db/mydb.dump

Ongeza /var/backups/db kwenye njia za backup. Mwongozo wetu wa PostgreSQL una maelezo zaidi kuhusu dump.

6. Ipangie ratiba kwa systemd

Hapa timer ni bora kuliko cron: inaandika kwenye journal na hufidia uendeshaji uliokosekana kama seva ilikuwa imezimwa wakati uliopangwa.

# /etc/systemd/system/restic-backup.service
[Unit]
Description=restic backup

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'source /root/.restic-env && restic backup /etc /home /root /srv /var/www /var/backups/db --exclude-caches && restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune'
# /etc/systemd/system/restic-backup.timer
[Unit]
Description=Daily restic backup

[Timer]
OnCalendar=*-*-* 03:30:00
Persistent=true

[Install]
WantedBy=timers.target
systemctl daemon-reload
systemctl enable --now restic-backup.timer
systemctl list-timers restic-backup.timer

forget --prune huhifadhi snapshot 7 za kila siku, 4 za kila wiki na 6 za kila mwezi na kufuta zilizobaki. Kama una hatua ya dump ya database, iweke kwenye mstari wa ExecStartPre=.

7. Rejesha kitu kweli

Hii ndiyo hatua inayogeuza "tuna backup" kuwa ukweli. Rudisha folda moja kwenye folda ya muda na uiangalie:

source /root/.restic-env
restic restore latest --target /tmp/restore-test --include /etc/nginx
ls -la /tmp/restore-test/etc/nginx
restic check

Fanya hivi mara moja sasa na tena kila baada ya miezi michache. restic check huthibitisha muundo wa repository; urejeshaji huthibitisha kwamba data kweli ipo.

restic na Managed Backups

Hazishindani. Managed Backups huchukua kila siku kituo cha kurejesha seva nzima, ambacho unakirudisha kutoka dashibodi — suluhisho la haraka baada ya sasisho lililoharibika. Zinagharimu $2 kwa mwezi na zimejumuishwa bure kwenye kila mpango wa mwaka. restic inakupa nakala za kiwango cha faili, nje ya seva, kwenye hifadhi unayoidhibiti — jambo muhimu tatizo linapokuwa faili lililofutwa Jumanne iliyopita, au unapotaka nakala iliyo nje kabisa ya miundombinu yetu.

Kama unahifadhi data nyeti, unganisha hili na usimbaji wa diski nzima, au angalia matumizi ya hifadhi iliyosimbwa ili kuendesha kituo chako cha backup. Mpango wa Micro unatosha kwa seva ndogo nyingi pamoja na kazi zao za backup.

Maswali

Nini kitatokea nikipoteza nenosiri la restic?

Backup zinapotea milele. restic husimba kila kitu upande wa client na hakuna ufunguo wa kurejesha. Hifadhi nenosiri kwenye kidhibiti cha manenosiri, si kwenye seva unayoifanyia backup pekee.

Repository inapaswa kuwa wapi?

Popote isipokuwa kwenye seva yenyewe: hifadhi ya object inayoendana na S3, VPS nyingine kupitia SFTP au mashine nyumbani. Backup iliyo kwenye diski ileile hufa pamoja na diski hiyo.

Nafanyaje backup ya database kwa restic?

Tengeneza dump kwanza kisha fanya backup ya dump hiyo — kwa PostgreSQL 'pg_dump -Fc', kwa MySQL 'mysqldump --single-transaction'. Kunakili faili za database inayoendesha kunaweza kukupa backup isiyowaka.

Backup zinachukua nafasi kiasi gani?

Kidogo kuliko unavyotarajia. restic hugawa faili vipande na kuhifadhi kila kipande mara moja, kwa hiyo snapshot za kila siku za seva isiyobadilika sana huongeza data iliyobadilika pekee.

Bado nahitaji Managed Backups?

Zinatatua matatizo tofauti. Managed Backups zinakupa vituo vya kila siku vya kurejesha seva nzima ambavyo unavirudisha kutoka dashibodi. restic inakupa nakala za kiwango cha faili, nje ya seva na chini ya udhibiti wako. Watu wengi hutumia zote mbili.

Maoni

Bado hakuna maoni. Kuwa wa kwanza.

Acha maoni

Maoni yanakaguliwa kabla ya kuonekana.