decramy.net

Webstek van Tjerk Jan


Backups met Restic

Goed, nu de webstek enige vorm heeft gekregen wordt het tijd om hetgeen ik vast wilde leggen eindelijk van me af te schrijven.

Scenario: ik heb dus een aantal (virtuele) machines waarvan ik graag de data wil backuppen. Met een collega heb ik een uitwisseling van backup-space ingeregeld; ik lever hem 2TB en hij mij. Daarvoor heb ik de beschikking gekregen over een openssh docker container. Daar zijn niet heel veel tools geinstalleerd, dus geen rsync of iets dergelijks. Navraag via IRC heeft me geleerd dat ik eens naar Restic moest kijken. Het is gewoon een repository waar je snapshots in opslaat.

Restic kan zijn data wegschrijven via bijvoorbeeld SFTP, maar helaas ging daar iets mis met mijn target... Ik zou moeten opzoeken wat dat ook al weer was; het was een of ander subcommando wat restic wilde gebruiken. Restic kan ook gebruik maken van rclone als backend en die heeft op zijn beurt weer ondersteuning voor SFTP zonder dat subcommando. En vervolgens gebruik ik Runrestic om niet zelf het wiel uit te vinden; het is een wrapper om restic heen. Runrestic verzorgt oa de prune van backups voor me.

Backups zijn dus als volgt geregeld: runrestic > restic > rclone > sftp > target

Rclone

apt-get install rclone

en dan de config-file /root/.config/rclone/rclone.conf:

[backuprob]
type = sftp
host = ergensophetinternet.nl
user = tj
port = 2222
key_file = /root/.ssh/id_rsa

Runrestic

pip3 install --upgrade runrestic

Configuratie in /etc/runrestic/main.toml:

name = "backuprob"

repositories = [
    "rclone:backuprob:backups/decramy",
    ]

[execution]
parallel = true

[environment]
RESTIC_PASSWORD = "secret"

[backup]
sources = [
    "/etc",
    "/home",
    "/root",
    "/usr/local/bin",
    "/usr/local/sbin",
    "/var/lib/dpkg/status",
    "/var/spool/cron/crontabs",
    ]

[prune]
keep-last = 7
keep-weekly = 10
keep-monthly = 30
group-by = "host,paths"

En de boel nog even activeren via /etc/cron.d/runrestic:

03 18 * * * root PATH=$PATH:/usr/local/bin /usr/local/bin/runrestic

Restic

apt-get install restic

Zoals aangegeven werkt restic met een repository; deze moet dan ook aangemaakt worden.

runrestic init

Huh?
Persoonlijke webstek op het internet van Tjerk Jan. De site is begonnen om mijn documentatie-behoefte een plekje te geven en in plaats van een afgeschermde wiki ben ik de boel maar op het publieke internet gaan zetten. Ik houd me naast mijn werk bezig met mijn (klus-)huis, welke ik zo veel als mogelijk computergestuurd maak. Hobbymatig ook een server in een datacenter hangen waar mail en ander klein prul draait.