Toată lumea are backup-uri până încearcă să restaureze unul. Se dovedește că folderul e gol, cron jobul a murit în martie sau arhiva stă pe același disc care tocmai a cedat. restic rezolvă cea mai mare parte din asta: criptează pe partea ta, stochează fiecare bucată de date o singură dată și face ca restaurarea unui singur fișier să fie la fel de ușoară ca backup-ul întregului server.
Iată o configurare în care chiar am avea încredere, pe Ubuntu sau Debian.
1. Instalează restic
apt update && apt install -y restic
restic self-update
Pachetele distribuției rămân în urmă; self-update aduce versiunea curentă.
2. Alege un loc pentru repository
Repository-ul nu trebuie să stea pe serverul pe care îl protejezi. Două alegeri obișnuite:
- Alt server, prin SFTP:
sftp:backup@203.0.113.20:/srv/restic/web1 - Object storage compatibil S3:
s3:https://s3.example.com/my-bucket/web1
3. Stochează datele de acces
Ține totul într-un singur fișier, accesibil doar pentru root, ca timerul și shellul tău să folosească aceleași setări:
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
Acum copiază conținutul /root/.restic-pass în managerul de parole. Fără el, backup-urile nu pot fi decriptate — nici de tine, nici de altcineva.
4. Inițializează și rulează primul backup
source /root/.restic-env
restic init
restic backup /etc /home /root /srv /var/www \
--exclude-caches --exclude '/root/.cache'
restic snapshots
Ajustează căile la locul unde stau efectiv datele tale. Volumele Docker sunt în /var/lib/docker/volumes; datele aplicațiilor sunt adesea în /srv sau /opt.
5. Baze de date: dump, apoi backup
Nu face backup fișierelor brute ale unei baze de date care rulează. Fă un dump chiar înainte de backup:
mkdir -p /var/backups/db
sudo -u postgres pg_dump -Fc mydb > /var/backups/db/mydb.dump
Adaugă /var/backups/db la căile de backup. Ghidul nostru PostgreSQL are mai multe despre dumpuri.
6. Programează-l cu systemd
Aici un timer e mai bun decât cron: scrie în jurnal și recuperează rularea dacă serverul era oprit la ora programată.
# /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 păstrează 7 copii zilnice, 4 săptămânale și 6 lunare și le șterge pe restul. Dacă ai un pas de dump al bazei de date, pune-l într-o linie ExecStartPre=.
7. Chiar restaurează ceva
Ăsta e pasul care transformă „avem backup-uri” într-un fapt. Adu înapoi un director într-un folder temporar și uită-te în el:
source /root/.restic-env
restic restore latest --target /tmp/restore-test --include /etc/nginx
ls -la /tmp/restore-test/etc/nginx
restic check
Fă asta o dată acum și din nou la câteva luni. restic check verifică structura repository-ului; restaurarea dovedește că datele chiar sunt acolo.
restic și Backup-urile administrate
Nu concurează. Backup-urile administrate fac zilnic un punct de restaurare pentru tot serverul, la care revii din dashboard — repararea rapidă după un upgrade stricat. Costă $2/lună și sunt incluse gratuit în orice plan anual. restic îți dă copii la nivel de fișiere, în afara serverului, într-o stocare pe care o controlezi, ceea ce contează când problema e un fișier șters marțea trecută sau vrei o copie complet în afara infrastructurii noastre.
Dacă stochezi date sensibile, combină asta cu criptarea completă a discului sau uită-te la cazul de utilizare pentru stocare criptată, ca să-ți rulezi propria destinație de backup. Un plan Micro ajunge pentru majoritatea serverelor mici, plus sarcinile lor de backup.
Comentarii
Încă nu există comentarii. Fii primul.