Όλοι έχουν αντίγραφα ασφαλείας μέχρι να προσπαθήσουν να επαναφέρουν ένα. Ο φάκελος αποδεικνύεται άδειος, το cron job πέθανε τον Μάρτιο, ή το αρχείο βρίσκεται στον ίδιο δίσκο που μόλις χάλασε. Το restic λύνει τα περισσότερα: κρυπτογραφεί από τη δική σας πλευρά, αποθηκεύει κάθε κομμάτι δεδομένων μία φορά και κάνει την επαναφορά ενός αρχείου εξίσου εύκολη με το backup όλου του server.
Ορίστε μια ρύθμιση που θα εμπιστευόμασταν πραγματικά, σε Ubuntu ή Debian.
1. Εγκαταστήστε το restic
apt update && apt install -y restic
restic self-update
Τα πακέτα της διανομής μένουν πίσω· το self-update κατεβάζει την τρέχουσα έκδοση.
2. Διαλέξτε θέση για το αποθετήριο
Το αποθετήριο δεν πρέπει να βρίσκεται στον server που προστατεύετε. Δύο συνηθισμένες επιλογές:
- Άλλος server μέσω SFTP:
sftp:backup@203.0.113.20:/srv/restic/web1 - Αποθήκευση αντικειμένων συμβατή με S3:
s3:https://s3.example.com/my-bucket/web1
3. Αποθηκεύστε τα διαπιστευτήρια
Κρατήστε τα όλα σε ένα αρχείο που διαβάζει μόνο ο root, ώστε ο timer και το shell σας να χρησιμοποιούν τις ίδιες ρυθμίσεις:
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
Τώρα αντιγράψτε το περιεχόμενο του /root/.restic-pass στον διαχειριστή κωδικών σας. Χωρίς αυτό, τα αντίγραφα δεν αποκρυπτογραφούνται — ούτε από εσάς ούτε από κανέναν άλλον.
4. Αρχικοποιήστε και τρέξτε το πρώτο backup
source /root/.restic-env
restic init
restic backup /etc /home /root /srv /var/www \
--exclude-caches --exclude '/root/.cache'
restic snapshots
Προσαρμόστε τις διαδρομές εκεί όπου πραγματικά βρίσκονται τα δεδομένα σας. Τα volumes του Docker είναι στο /var/lib/docker/volumes· τα δεδομένα εφαρμογών συχνά στο /srv ή στο /opt.
5. Βάσεις δεδομένων: πρώτα dump, μετά backup
Μην κρατάτε αντίγραφο των ακατέργαστων αρχείων μιας βάσης σε λειτουργία. Κάντε dump ακριβώς πριν από το backup:
mkdir -p /var/backups/db
sudo -u postgres pg_dump -Fc mydb > /var/backups/db/mydb.dump
Προσθέστε το /var/backups/db στις διαδρομές του backup. Ο οδηγός μας για PostgreSQL έχει περισσότερα για τα dumps.
6. Προγραμματίστε το με systemd
Εδώ ένας timer είναι καλύτερος από το cron: γράφει στο journal και καλύπτει μια χαμένη εκτέλεση αν ο server ήταν κλειστός εκείνη την ώρα.
# /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 κρατά 7 ημερήσια, 4 εβδομαδιαία και 6 μηνιαία snapshots και σβήνει τα υπόλοιπα. Αν έχετε βήμα για dump της βάσης, βάλτε το σε γραμμή ExecStartPre=.
7. Επαναφέρετε πραγματικά κάτι
Αυτό είναι το βήμα που κάνει το «έχουμε αντίγραφα» γεγονός. Φέρτε πίσω έναν φάκελο σε προσωρινό κατάλογο και κοιτάξτε τον:
source /root/.restic-env
restic restore latest --target /tmp/restore-test --include /etc/nginx
ls -la /tmp/restore-test/etc/nginx
restic check
Κάντε το μία φορά τώρα και ξανά κάθε λίγους μήνες. Το restic check επαληθεύει τη δομή του αποθετηρίου· η επαναφορά αποδεικνύει ότι τα δεδομένα είναι όντως εκεί.
restic και Managed Backups
Δεν ανταγωνίζονται. Τα Managed Backups παίρνουν κάθε μέρα ένα σημείο επαναφοράς ολόκληρου του server, που το επαναφέρετε από τον πίνακα — η γρήγορη λύση μετά από αναβάθμιση που πήγε στραβά. Κοστίζουν $2 τον μήνα και περιλαμβάνονται δωρεάν σε κάθε ετήσιο πλάνο. Το restic δίνει αντίγραφα σε επίπεδο αρχείων, εκτός server, σε αποθήκευση που ελέγχετε εσείς — κάτι που μετράει όταν το πρόβλημα είναι ένα αρχείο που σβήστηκε την περασμένη Τρίτη ή όταν θέλετε αντίγραφο εντελώς έξω από την υποδομή μας.
Αν κρατάτε ευαίσθητα δεδομένα, συνδυάστε το με πλήρη κρυπτογράφηση δίσκου, ή δείτε τη χρήση για κρυπτογραφημένη αποθήκευση για να τρέχετε τον δικό σας προορισμό αντιγράφων. Ένα πλάνο Micro αρκεί για τους περισσότερους μικρούς servers μαζί με τα backups τους.
Σχόλια
Δεν υπάρχουν ακόμη σχόλια. Γίνετε ο πρώτος.