Backup
Säkerhetskopiering
Säkerhetskopiering av hemdisk
Hemdisk säkerhetskopieras regelbundet (4 gånger per dygn). Servern som säkerhetskopieringen sker mot en server som är betydligt mindre än hemdisk (Hermaeus) så om en större datamängd ska lagras som inte kräver säkerhetskopiering (till exempel om hemdisk används för just säkerhetskopiering) så behöver den exkluderas från säkerhetskopieringen.
Exkludera data från att säkerhetskopieras genom att skapa filen .nobackup i mappen som ska exkluderas.
Använda cpu-servar för att säkerhetskopiera data
Detta går självklart att tillämpa för säkerhetskopiering mot andra system
Det enklaste sättet att säkerhetskopiera egen data till hemdisk är att använda rsync. Däremot har det ett antal nackdelar:
1. Nya versioner av filer skriver över de gamla så om en fil modifieras (felaktigt) och sedan säkerhetskopieras så går det inte att återställa den tidigare versionen.
2. Filerna ligger okrypterade på servern.
Båda problemen kan lösas genom att använda för ändamålet skapade program. Två välanvända program med gott anseende är restic och borg. Nedan beskrivs hur man kan sätta upp restic.
- Skapa en SSH-nyckel för det (kontot som ska genomföra säkerhetskopieringen) utan lösenord och lägg till den i din
authorized_keys(om lösenord behöver skrivas in går det inte att automatisera). Skydda nyckeln väl. - Skapa ett avsnitt i
~/.ssh/configför kontot som ska genomföra säkerhetskopieringenHost lysator-backup HostName [VÄRDNAMN HÄR] IdentityFile [SÖKVÄG TILL SSH-NYCKEL] User [LYSATOR ANVÄNDARNAMN] - Skapa en mapp i din hemkatalog där säkerhetskopian ska ligga.
- Skapa filen
.nobackupi den mappen (se ovan) - Generera en lösenord (nyckeln som säkerhetskopian krypteras med)
- Skapa en mapp som kommer innehålla skripten för säkerhetskopieringen och i den skapa en filen
repo.shmed följande innehåll.export RESTIC_PASSWORD=[LÖSENORD HÄR] export RESTIC_REPOSITORY=sftp:lysator-backup:[SÖKVÄG TILL MAPP FÖR SÄKERHETSKOPIA] - Läs in miljövariablerna genom att köra
source repo.sh - Initiera förrådet genom att köra
restic init - Skapa ett skript som gör själva säkerhetskopieringen
backup.shmed följande innehåll:Ge användaren som ska genomföra säkerhetskopieringen rätt att köra skriptet samt läsa#!/bin/sh export RESTIC_CACHE_DIR=~/.cache/restic/ source repo.sh restic backup [SÖKVÄG 1] [SÖKVÄG 2] [SÖKVÄG 3]repo.sh - Testa att göra en första backup. (Tips: Kör i en screen/tmux om du har "mycket" data). Gå till mappen med scripten och kör
./backup.sh
Schemalägg säkerhetskopiering med systemd
Nedan så skapas en systemd-tjänst som kör säkerhetskopieringen varje natt. Säkerhetskopieringen sker vid ett slumpat tillfälle mellan 00:00 och 05:00.
- Skapa filen
/etc/systemd/system/backup.service[Unit] Description=Backup After=network.target [Service] Type=exec ExecStart=[SÖKVÄG TILL backup.sh] WorkingDirectory=[SÖKVÄG TILL MAPP MED BACKUP SKRIPT] User=[ANVÄNDARE SOM KÖR BACKUP] # Denna rad kan tas bort om backup körs som root [Install] WantedBy=default.target - Skapa filen
/etc/systemd/system/backup.timer[Unit] Description=Nightly backup [Timer] Unit=backup.service OnCalendar=*-*-* 00:00:00 RandomizedDelaySec=5h [Install] WantedBy=timers.target - Aktivera skriptet:
systemctl enable --now backup.timer