Pereiti prie turinio

Slapukų nustatymai

Pasirinkite, kokių rūšių slapukus leidžiate. Pasirinkimą bet kada galite pakeisti per „Slapukų nustatymai“ kiekvieno puslapio apačioje. Privatumo pareiškimas

Būtinieji

Visada įjungti

Reikalingi prisijungti, išsaugoti krepšelį ir įsiminti Jūsų pasirinkimus. Jie visada įjungti.

Kokie slapukai?
  • weboke_sessie, weboke_klant, weboke_remember: Jūsų sesija ir prisijungimo išlaikymas
  • weboke_basket: Jūsų krepšelis
  • wkBtwIncl: kainų rodymas su PVM arba be PVM
  • wok_cookies: Jūsų slapukų pasirinkimas, 12 mėnesių

Matuoja, kuri reklama atveda prie apsilankymo ar užsakymo, kad nemokėtume už neveiksmingas reklamas.

Kokie slapukai?
  • Google Ads per Google Tag Manager (_gcl_au, _gcl_aw), iki 90 dienų
  • OpenAI Ads, reklamos ChatGPT
  • wok_aff: per kurį partnerį atėjote pas mus (partnerių programa), 60 dienų

4,6

Šalis ir kalba

Kiekviena šalis turi savo svetainę su tos šalies kainomis ir PVM.

Peržiūrėti

Atsarginės kopijos su restic

8 modulis: Atsarginės kopijos ir stebėsena · Skaitymo laikas: 12 min.

Mokymosi tikslas: Po šios pamokos galėsite su restic kurti šifruotas atsargines kopijas į saugyklą už Jūsų serverio ribų, šalinti senas versijas pagal saugojimo schemą, tikrinti atsarginę kopiją, atkurti failus ir visa tai paleisti automatiškai.

Pagrindinės sąvokos: restic, saugykla (repository), init, slaptažodis (slaptažodžio failas), backend (sftp, S3, rest-server), backup, snapshots, forget, --keep-daily/--keep-weekly/--keep-monthly, prune, check, restore, mount, deduplikacija, append-only, systemd laikmatis

Kodėl restic?

Atsarginių kopijų programų yra daug. restic yra geras pasirinkimas nuosavam serveriui, nes ji:

  • viską užšifruoja prieš duomenims paliekant serverį; saugykla mato tik neperskaitomus blokus;
  • deduplikuoja: nepasikeitęs failas pakartotinai neišsaugomas, todėl kasdienės atsarginės kopijos užima mažai vietos;
  • palaiko daug saugyklų tipų: aplanką, kitą serverį per SFTP, su S3 suderinamą saugyklą, nuosavą rest-server;
  • yra viena programa, esanti Debian ir Ubuntu paketų saugykloje (apt install restic).

Panašių savybių turinti alternatyva yra BorgBackup. Šios pamokos principai galioja ir jai.

Sąvokos

  • Saugykla (repository): vieta, kurioje restic saugo atsargines kopijas. Visada už serverio, kurio kopiją darote, ribų.
  • Momentinė kopija (snapshot): viena atsarginė kopija vienu metu. (Atkreipkite dėmesį: tai kas kita nei Jūsų paslaugų teikėjo momentinė kopija iš 8.1 pamokos.)
  • Slaptažodis: kiekviena saugykla turi slaptažodį, kuriuo viskas užšifruojama. restic dokumentacija tai sako aiškiai: praradus slaptažodį, duomenys prarandami negrįžtamai.

Saugyklos sukūrimas

Tarkime, turite saugojimo serverį backup.example.net, prie kurio galite prisijungti per SFTP su raktu kaip naudotojas web1. Pirmiausia serveryje sukurkite slaptažodžio failą (o tą patį slaptažodį išsaugokite ir savo slaptažodžių tvarkyklėje, 8.1 pamoka):

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.

Naudodami aplinkos kintamuosius RESTIC_REPOSITORY ir RESTIC_PASSWORD_FILE, Jums nereikės kaskart rašyti parinkčių -r ir --password-file.

Atsarginės kopijos sukūrimas

Atsarginės kopijos kūrimas ir atkūrimas su restic 1:10

Pirmiausia duomenų bazės iškeltis (8.1 pamoka), tada atsarginė kopija:

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

Kitą dieną tai vyksta kur kas greičiau: įtraukiama tik tai, kas pasikeitė.

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

Valymas: forget ir prune

Kasdien pridedant po momentinę kopiją, po metų jų bus 365. Su forget nustatote, kurias išsaugoti, naudodami saugojimo schemą:

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

Schema veikia taip:

  • --keep-daily 7: žiūrima į paskutines septynias dienas, kuriomis yra momentinė kopija, ir kiekvienai dienai paliekama naujausia;
  • --keep-weekly 4: tas pats paskutinėms keturioms savaitėms (nuo pirmadienio iki sekmadienio);
  • --keep-monthly 6: tas pats paskutiniams šešiems mėnesiams.

Momentinė kopija paliekama, jei atitinka bent vieną iš taisyklių. Viskas, kas neatitinka nė vienos taisyklės, pamirštama. Naują schemą pirmiausia išbandykite su --dry-run: pamatysite, kas būtų pašalinta, nieko nepakeitę.

Svarbus skirtumas: forget pašalina tik nuorodą į momentinę kopiją. Duomenys lieka saugykloje, kol prune išvalo blokus, kurių nebenaudoja nė viena momentinė kopija. Parinktis --prune prie forget tai atlieka iš karto. Prune užtrunka ir užrakina saugyklą, todėl neplanuokite jo tuo pačiu metu kaip atsarginės kopijos.

Tikrinimas: check

Tyliai sugadintą atsarginę kopiją pastebėsite tik atkurdami. Leiskite restic reguliariai tikrinti saugyklą:

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

Paprastas check tikrina struktūrą. Su --read-data-subset programa taip pat iš tikrųjų nuskaito dalį duomenų ir patikrina turinį. Darykite tai, pavyzdžiui, kas savaitę su keliais procentais; taip po kurio laiko visi duomenys bus bent kartą nuskaityti.

Atkūrimas: restore ir mount

Atkurkite į atskirą aplanką, niekada iš karto ant originalo:

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 yra naujausia momentinė kopija; taip pat galite naudoti ID (restic restore 3c7e91d4 ...). Su restic mount /mnt/restic (reikia FUSE) visas momentines kopijas matote kaip aplankus, galite jas naršyti ir kopijuoti atskirus failus. Sustabdoma klavišais Ctrl+C.

Duomenų bazę atkursite atsisiuntę iškeltį ir ją importavę, pavyzdžiui, gunzip < alles.sql.gz | mariadb.

Automatiškai, kiekvieną naktį

Sukurkite scenarijų ir systemd laikmatį (6.3 pamoka). Scenarijus:

#!/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

.service su Type=oneshot ir ExecStart=/usr/local/sbin/backup.sh, ir .timer su OnCalendar=*-*-* 03:10:00 ir Persistent=true. set -eu užtikrina, kad scenarijus sustotų ties pirmąja klaida, todėl systemd paleidimą laiko nepavykusiu. Prijunkite pranešimą (8.3 pamoka), kitaip nepavykusios atsarginės kopijos nepastebėsite.

Nuo išpirkos reikalaujančių programų: append-only

Aukščiau pateiktame scenarijuje pats serveris gali ir ištrinti atsarginę kopiją (forget ir prune). Jei serverį perima užpuolikas, jis taip pat gali tai padaryti. Du būdai to išvengti:

  • rest-server append-only režimu: saugojimo serveryje paleidžiate paties restic rest-server su parinktimi --append-only. Tada žiniatinklio serveris gali pridėti atsargines kopijas, bet nieko ištrinti negali. Valymą (forget --prune) atliekate iš kito, gerai apsaugoto kompiuterio su visomis teisėmis.
  • Saugykla su versijų valdymu arba objektų užrakinimu pas S3 paslaugų teikėją, kad ištrintus objektus dar kurį laiką būtų galima susigrąžinti.

Atkreipkite dėmesį į subtilius spąstus, kuriuos mini pati restic dokumentacija: užpuolikas, pridedantis netikras momentines kopijas, gali priversti tokią schemą kaip --keep-weekly pamiršti tikras momentines kopijas. Su --keep-within (pavyzdžiui, --keep-within 30d) visos to laikotarpio kopijos lieka, netikros ar tikros.

Santrauka

  • restic šifruoja, deduplikuoja ir gali saugoti duomenis daugelio tipų saugyklose už Jūsų serverio ribų; praradus slaptažodį, prarandama viskas.
  • init sukuria saugyklą, backup sukuria momentinę kopiją, snapshots jas parodo.
  • forget su --keep-* nustato, ką saugote; tik prune (arba --prune) iš tikrųjų išvalo duomenis. Išbandykite su --dry-run.
  • check (su --read-data-subset) tikrina, restore --target atkuria į atskirą aplanką, mount leidžia naršyti.
  • Automatizuokite su laikmačiu ir pranešimu, o bent vieną saugyklą laikykite serveriui nepasiekiamą (append-only).

Testas (quiz)

1. Kas nutinka, kai įvykdote restic forget --keep-daily 7 be --prune?



2. Jūsų restic saugyklos slaptažodis yra tik serveryje esančiame /root/.restic-wachtwoord. Serveris prarastas. Kas dabar?



3. Kodėl atsarginę kopiją atkuriate į /tmp/terug, o ne iš karto į pradinę vietą?



4. Ką restic check --read-data-subset=5% prideda prie paprasto restic check?



5. Užpuolikas, perėmęs Jūsų žiniatinklio serverį, per atsarginių kopijų scenarijų gali įvykdyti ir restic forget --prune. Kas nuo to apsaugo?



Užduotis

Užduotis Z8.2: Kas lieka po forget? Pavyzdiniame faile restic-snapshots.txt yra momentinių kopijų sąrašas ir saugojimo schema. Nustatykite, kurios momentinės kopijos liks po restic forget su šia schema. Programa palygins su nustatytu atsakymų raktu.

Užduotis Z8.2: Kas lieka po forget?

Failas šiai užduočiai: restic-snapshots.txt





Ko, ką įvedate ir ką randame, nesaugome. Jūsų naršyklė atsimena Jūsų atsakymus ir tai, ar užduotį atlikote. Jei esate prisijungę, skiltyje Mano kursai išsaugome tik tai, kad užduotis buvo atlikta (ar beveik atlikta); ten tai galite ir pašalinti.

Užduotis O8.2: Atkūrimo bandymas. Savo serveryje sukurkite restic saugyklą už serverio ribų, padarykite /etc ir savo duomenų atsarginę kopiją ir atkurkite vieną aplanką į /tmp/terug. Palyginkite su diff, užsirašykite, kiek laiko tai užtruko, ir atsakykite, kur už serverio ribų saugomi Jūsų slaptažodis ir saugyklos prisijungimo duomenys.

Užduotis O8.2: Atkūrimo bandymas

Šią užduotį atliekate patys; niekas jos netikrina. Pažymėkite, ką atlikote, ir pažymėkite užduotį kaip atliktą.




Jūsų pažymėti varneliai ir pastabos lieka tik šioje naršyklėje; niekur jų nesiunčiame. Jei esate prisijungę, skiltyje Mano kursai išsaugome tik tai, kad užduotį atlikote.

Skaitykite daugiau

Akimirką…

Nustatykite domenus

Kiekvienam domenui nustatykite vardų serverius, susiejimą su talpinimu ir tai, kas taps valdytoju.

Įkeliami Jūsų domenai…