Mine sisu juurde

Küpsiste seaded

Vali iga liigi kohta, milliseid küpsiseid lubad. Oma valikut saad alati muuta iga lehe allosas oleva lingi „Küpsiste seaded“ kaudu. Privaatsuspoliitika

Vajalikud

Alati sees

Vajalikud sisselogimiseks, ostukorvi säilitamiseks ja sinu valikute meelespidamiseks. Need on alati sees.

Millised küpsised?
  • weboke_sessie, weboke_klant, weboke_remember: sinu seanss ja sisselogituks jäämine
  • weboke_basket: sinu ostukorv
  • wkBtwIncl: hindade näitamine koos käibemaksuga või ilma
  • wok_cookies: sinu küpsisevalik, 12 kuud

Mõõdab, milline reklaam viib külastuse või tellimuseni, et me ei maksaks reklaamide eest, mis midagi ei anna.

Millised küpsised?
  • Google Ads Google Tag Manageri kaudu (_gcl_au, _gcl_aw), kuni 90 päeva
  • OpenAI Ads, reklaamid ChatGPT-s
  • wok_aff: millise partneri kaudu meie juurde jõudsid (partnerprogramm), 60 päeva

4,6

Riik ja keel

Igal riigil on oma sait, selle riigi hindade ja käibemaksuga.

Vaata

Varukoopiad resticuga

Moodul 8: Varukoopiad ja jälgimine · Lugemisaeg: 12 minutit

Õpieesmärk: Pärast seda õppetundi oskad resticuga teha krüpteeritud varukoopiaid väljaspool serverit asuvasse hoidlasse, koristada vanu versioone säilitusskeemi järgi, varukoopiat kontrollida ja faile taastada ning panna kõik see automaatselt tööle.

Põhimõisted: restic, repositoorium, init, parool(ifail), taustsüsteem (sftp, S3, rest-server), backup, snapshots, forget, --keep-daily/--keep-weekly/--keep-monthly, prune, check, restore, mount, deduplitseerimine, append-only, systemd-taimer

Miks restic?

Varundusprogramme on palju. restic on oma serveri jaoks hea valik, sest see:

  • krüpteerib kõik enne, kui andmed serverist lahkuvad; hoidla näeb ainult loetamatuid plokke;
  • deduplitseerib: faili, mis pole muutunud, uuesti ei salvestata, nii et igapäevased varukoopiad võtavad vähe ruumi;
  • tunneb palju erinevaid hoidlaid: kausta, teist serverit SFTP kaudu, S3-ühilduvat salvestust, oma rest-serverit;
  • on üks programm, mis on Debiani ja Ubuntu pakiallikas (apt install restic).

Sarnaste omadustega alternatiiv on BorgBackup. Selle õppetunni põhimõtted kehtivad ka seal.

Mõisted

  • Repositoorium: koht, kuhu restic varukoopiad salvestab. Alati väljaspool serverit, mida varundad.
  • Hetktõmmis (snapshot): üks varukoopia ühel ajahetkel. (NB! See on midagi muud kui sinu teenusepakkuja hetktõmmis õppetunnist 8.1.)
  • Parool: igal repositooriumil on parool, millega kõik krüpteeritakse. resticu dokumentatsioon ütleb selgelt: kes parooli kaotab, kaotab andmed pöördumatult.

Repositooriumi loomine

Oletame, et sul on salvestusserver backup.example.net, kuhu pääsed SFTP kaudu võtmega ligi kasutajana web1. Loo kõigepealt serverisse paroolifail (ja hoia sama parooli ka oma paroolihalduris, õppetund 8.1):

root@web1:~# install -m 600 /dev/null /root/.restic-wachtwoord
root@web1:~# openssl rand -base64 32 > /root/.restic-wachtwoord
root@web1:~# export RESTIC_REPOSITORY=sftp:web1@backup.example.net:/srv/restic/web1
root@web1:~# export RESTIC_PASSWORD_FILE=/root/.restic-wachtwoord
root@web1:~# restic init
created restic repository 5f1a9c2e3b at sftp:web1@backup.example.net:/srv/restic/web1

Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.

Keskkonnamuutujatega RESTIC_REPOSITORY ja RESTIC_PASSWORD_FILE ei pea sa valikuid -r ja --password-file iga kord sisestama.

Varukoopia tegemine

Kõigepealt andmebaasi tõmmis (õppetund 8.1), seejärel varukoopia:

root@web1:~# restic backup /etc /var/www /opt /var/backups/db \
    --exclude /var/www/*/cache --tag dagelijks
repository 5f1a9c2e opened (version 2, compression level auto)
...
Files:        8421 new,     0 changed,     0 unmodified
Dirs:         1203 new,     0 changed,     0 unmodified
Added to the repository: 612.338 MiB (402.117 MiB stored)

processed 8421 files, 1.204 GiB in 0:41
snapshot 3c7e91d4 saved

Järgmisel päeval on see palju kiirem: kaasa läheb ainult see, mis muutus.

root@web1:~# restic snapshots
ID        Time                 Host  Tags       Paths
-----------------------------------------------------------------------
3c7e91d4  2026-11-08 03:10:02  web1  dagelijks  /etc /opt /var/backups/db /var/www
a18f0b77  2026-11-09 03:10:05  web1  dagelijks  /etc /opt /var/backups/db /var/www
-----------------------------------------------------------------------
2 snapshots

Koristamine: forget ja prune

Kui iga päev lisandub üks hetktõmmis, on aasta pärast neid 365. Käsuga forget määrad säilitusskeemiga, milliseid alles hoiad:

root@web1:~# restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune

Skeem töötab nii:

  • --keep-daily 7: vaata viimast seitset päeva, millel on hetktõmmis, ja hoia igast päevast alles uusim;
  • --keep-weekly 4: sama viimase nelja nädala kohta (esmaspäevast pühapäevani);
  • --keep-monthly 6: sama viimase kuue kuu kohta.

Hetktõmmis jääb alles, kui see vastab vähemalt ühele reeglile. Kõik, mis ei vasta ühelegi reeglile, unustatakse. Proovi uut skeemi kõigepealt valikuga --dry-run: siis näed, mis kustuks, ilma et midagi muutuks.

Oluline erinevus: forget eemaldab ainult viite hetktõmmisele. Andmed jäävad repositooriumi alles, kuni prune koristab plokid, mida ükski hetktõmmis enam ei kasuta. Valik --prune käsu forget juures teeb selle korraga ära. Prune võtab aega ja lukustab repositooriumi, seega ära planeeri seda varundusega samale ajale.

Kontrollimine: check

Varukoopia, mis vaikselt kahjustub, avastad alles taastamisel. Lase resticul repositooriumi regulaarselt kontrollida:

root@web1:~# restic check
...
no errors were found
root@web1:~# restic check --read-data-subset=5%

Lihtsalt check kontrollib struktuuri. Valikuga --read-data-subset loeb see ka päriselt osa andmetest tagasi ja kontrollib sisu. Tee seda näiteks kord nädalas paari protsendiga; nii on mõne aja pärast kõik korra läbi loetud.

Taastamine: restore ja mount

Taasta eraldi kausta, mitte kunagi kohe originaali peale:

root@web1:~# restic restore latest --target /tmp/terug --include /etc/nginx
restoring snapshot a18f0b77 of [/etc /opt /var/backups/db /var/www] at 2026-11-09 03:10:05 ...
Summary: Restored 41 files/dirs (88.104 KiB) in 0:00
root@web1:~# diff -r /tmp/terug/etc/nginx /etc/nginx && echo gelijk
gelijk

latest on uusim hetktõmmis; võid kasutada ka ID-d (restic restore 3c7e91d4 ...). Käsuga restic mount /mnt/restic (vajab FUSE-t) näed kõiki hetktõmmiseid kaustadena, saad ringi vaadata ja üksikuid faile kopeerida. Lõpeta klahvidega Ctrl+C.

Andmebaasi taastad nii, et tood tõmmise tagasi ja impordid selle, näiteks gunzip < alles.sql.gz | mariadb.

Automaatselt, igal ööl

Loo skript ja systemd-taimer (õppetund 6.3). Skript:

#!/bin/sh
# /usr/local/sbin/backup.sh
set -eu
export RESTIC_REPOSITORY=sftp:web1@backup.example.net:/srv/restic/web1
export RESTIC_PASSWORD_FILE=/root/.restic-wachtwoord
mariadb-dump --single-transaction --all-databases | gzip > /var/backups/db/alles.sql.gz
restic backup /etc /var/www /opt /var/backups/db --tag dagelijks
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune

Üks .service, milles on Type=oneshot ja ExecStart=/usr/local/sbin/backup.sh, ning üks .timer, milles on OnCalendar=*-*-* 03:10:00 ja Persistent=true. set -eu tagab, et skript peatub esimese vea juures, nii et systemd näeb käivitust ebaõnnestununa. Seo sellega teavitus (õppetund 8.3), muidu ebaõnnestunud varukoopiat ei märka.

Lunavara vastu: append-only

Ülaltoodud skriptis saab server ise varukoopia ka kustutada (forget ja prune). Kui ründaja serveri üle võtab, saab tema seda samuti teha. Selle vältimiseks on kaks võimalust:

  • rest-server append-only-režiimis: salvestusserveris käivitad resticu enda rest-serveri valikuga --append-only. Veebiserver saab siis varukoopiaid küll lisada, aga mitte midagi kustutada. Koristamise (forget --prune) teed teisest, hästi kaitstud masinast täisõigustega.
  • Versioonihaldusega või objektilukustusega salvestus S3-teenusepakkuja juures, nii et kustutatud objekte saab veel mõnda aega tagasi tuua.

Pane tähele peent lõksu, mida resticu dokumentatsioon ise mainib: ründaja, kes lisab võlts-hetktõmmiseid, võib panna sellise skeemi nagu --keep-weekly päris hetktõmmiseid unustama. Valikuga --keep-within (näiteks --keep-within 30d) jääb kõik sellest perioodist alles, olgu võlts või päris.

Kokkuvõte

  • restic krüpteerib, deduplitseerib ja oskab salvestada paljudesse hoidlatesse väljaspool serverit; parool kadunud tähendab, et kõik on kadunud.
  • init loob repositooriumi, backup teeb hetktõmmise, snapshots näitab neid.
  • forget koos --keep-* määrab, mida alles hoiad; alles prune (või --prune) koristab andmed päriselt. Proovi valikuga --dry-run.
  • check (koos --read-data-subset) kontrollib, restore --target taastab eraldi kausta, mount laseb ringi vaadata.
  • Automatiseeri taimeri ja teavitusega ning hoia vähemalt üks repositoorium serveri käeulatusest väljas (append-only).

Test (quiz)

1. Mis juhtub, kui käivitad restic forget --keep-daily 7 ilma valikuta --prune?



2. Sinu restic-repositooriumi parool on ainult failis /root/.restic-wachtwoord serveris. Server on kaotsi läinud. Mis nüüd?



3. Miks taastad varukoopia kausta /tmp/terug ja mitte kohe algsesse kohta?



4. Mida lisab restic check --read-data-subset=5% tavalisele käsule restic check?



5. Ründaja, kes võtab üle sinu veebiserveri, saab varundusskripti kaudu käivitada ka restic forget --prune. Mis selle eest kaitseb?



Ülesanne

Ülesanne Z8.2: Mis jääb alles pärast forget-käsku? Näidisfailis restic-snapshots.txt on hetktõmmiste loend ja säilitusskeem. Tee kindlaks, millised hetktõmmised jäävad alles pärast käsku restic forget selle skeemiga. Programm võrdleb sinu vastust kindla võtmega.

Ülesanne Z8.2: Mis jääb alles pärast forget-käsku?

Selle ülesande fail: restic-snapshots.txt





Seda, mida sisestad, ja mida leiame, me ei salvesta. Su brauser jätab meelde su vastused ja selle, kas sooritasid ülesande. Kui oled sisse loginud, salvestame Minu kursustes ainult info, et sul oli ülesanne (peaaegu) õige; ka selle saad sealt kustutada.

Ülesanne O8.2: Taastamise test. Loo oma serveris restic-repositoorium väljaspool serverit, tee varukoopia kaustast /etc ja oma andmetest ning taasta üks kaust kausta /tmp/terug. Võrdle käsuga diff, pane kirja, kui kaua see aega võttis, ja vasta, kus väljaspool serverit on hoitud sinu parool ja salvestusteenuse andmed.

Ülesanne O8.2: Taastamise test

Selle ülesande teed ise, keegi ei kontrolli seda. Märgi ära, mida tegid, ja märgi ülesanne tehtuks.




Su linnukesed ja märkmed jäävad ainult sellesse brauserisse, me ei saada neid kuhugi. Kui oled sisse loginud, salvestame Minu kursustes ainult info, et tegid ülesande ära.

Loe edasi

Hetk…

Seadista oma domeenid

Määra iga domeeni jaoks nimeserverid, seos sinu majutusega ja kes saab omanikuks.

Laadin sinu domeene…