−25%

på Windows vid årsbetalning, till 31/10. Till paketen

EQVPS

Så säkerhetskopierar du en VPS med restic (krypterat, externt)

Krypterade, deduplicerade VPS-backuper med restic: ett repository på S3-kompatibel lagring eller en annan server, en systemd-timer, lagringsregler och ett återställningstest.

Alla har backuper tills de försöker återställa en. Mappen visar sig vara tom, cronjobbet dog i mars, eller arkivet ligger på samma disk som just gick sönder. restic löser det mesta av det: det krypterar på din sida, lagrar varje databit en gång och gör det lika enkelt att återställa en enda fil som att säkerhetskopiera hela servern.

Här är en uppsättning vi faktiskt skulle lita på, på Ubuntu eller Debian.

1. Installera restic

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

Distributionspaketen ligger efter; self-update hämtar den aktuella versionen.

2. Välj en plats för repositoryt

Repositoryt får inte ligga på servern du skyddar. Två vanliga val:

3. Spara inloggningsuppgifterna

Håll allt i en fil som bara root kan läsa, så att timern och ditt skal använder samma inställningar:

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

Kopiera nu innehållet i /root/.restic-pass till din lösenordshanterare. Utan det kan backuperna inte dekrypteras — varken av dig eller av någon annan.

4. Initiera och kör den första backupen

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

Justera sökvägarna efter var din data faktiskt ligger. Docker-volymer finns under /var/lib/docker/volumes; applikationsdata ligger ofta i /srv eller /opt.

5. Databaser: dumpa först, säkerhetskopiera sedan

Säkerhetskopiera inte råfilerna från en körande databas. Dumpa den precis före backupen:

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

Lägg till /var/backups/db i backupsökvägarna. Vår PostgreSQL-guide har mer om dumpar.

6. Schemalägg med systemd

En timer slår cron här: den loggar till journalen och tar igen en körning om servern var avstängd vid den tidpunkten.

# /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 behåller 7 dagliga, 4 veckovisa och 6 månatliga snapshots och raderar resten. Har du ett steg för databasdump, lägg det på en ExecStartPre=-rad.

7. Återställ faktiskt något

Det här är steget som gör "vi har backuper" till ett faktum. Hämta tillbaka en katalog till en tillfällig mapp och titta på den:

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

Gör det en gång nu och sedan med några månaders mellanrum. restic check verifierar repositoryts struktur; återställningen bevisar att datan verkligen finns där.

restic och Managed Backups

De konkurrerar inte. Managed Backups tar en daglig återställningspunkt för hela servern som du rullar tillbaka från panelen — den snabba lösningen efter en misslyckad uppgradering. De kostar $2 i månaden och ingår gratis i alla årsplaner. restic ger dig externa kopior på filnivå i lagring du själv kontrollerar, vilket spelar roll när problemet är en fil som raderades i tisdags eller när du vill ha en kopia helt utanför vår infrastruktur.

Lagrar du känslig data, kombinera detta med full diskkryptering, eller titta på användningsfallet krypterad lagring för att köra ditt eget backupmål. En Micro-plan räcker för de flesta små servrar plus deras backupjobb.

FAQ

Vad händer om jag tappar bort restic-lösenordet?

Då är backuperna borta för gott. restic krypterar allt på klientsidan och det finns ingen återställningsnyckel. Spara lösenordet i en lösenordshanterare, inte bara på servern du säkerhetskopierar.

Var ska repositoryt ligga?

Var som helst utom på själva servern: S3-kompatibel objektlagring, en annan VPS över SFTP eller en maskin hemma. En backup på samma disk dör med den disken.

Hur säkerhetskopierar jag en databas med restic?

Dumpa den först och säkerhetskopiera dumpen — för PostgreSQL 'pg_dump -Fc', för MySQL 'mysqldump --single-transaction'. Att kopiera filerna från en körande databas kan ge en backup som inte startar.

Hur mycket plats tar backuperna?

Mindre än du tror. restic delar upp filer i bitar och lagrar varje bit en gång, så dagliga snapshots av en server som mest är oförändrad lägger bara till den ändrade datan.

Behöver jag fortfarande Managed Backups?

De löser olika problem. Managed Backups ger dig dagliga återställningspunkter för hela servern som du rullar tillbaka från panelen. restic ger dig externa kopior på filnivå som du själv styr över. Många kör båda.

Kommentarer

Inga kommentarer än. Bli först.

Lämna en kommentar

Kommentarer modereras innan de visas.