Backup mit Linux
Linux Backup
Vorraussetzung für SIcherung und Wiederherstellung ist, dass die Server der Universität vom zu sichernden Gerät per ssh erreichbar sind.
Im Beispiel soll ein einfaches Backup auf dem Server backup.zfn.uni-bremen.de mit dem User testuser gezeigt werden.
- Bitte tauschen Sie "testuser" durch Ihren Uni-Account aus. Ein neuer Funktionsaccount wäre noch besser.
- Das Passwort Abc!123 darf nicht verwendet werden, weil ich es hier publiziert habe.
- Wenn Sie Ihre Backups auch auf backup.zfn.uni-bremen.de ablegen wollen, dann schreiben Sie uns an eine unserer Funktionsadressen unten.
- Testen Sie das Backup und den Restore mehrfach!
Vorbereitung
Bitte installieren Sie sshfs, ssh, rsync und cryfs:
# apt install shfs openssh-client cryfs rsync
Nun erstellen Sie einen ssh key:
# ssh-keygen
Kopieren Sie nun den public-Teil des Key auf den Server:
# ssh-copy-id testuser@backup.zfn.uni-bremen.de
Nun fehlen noch ein paar Ordner.
# mkdir /home/testuser/cryfsbackup/ # ssh testuser@backup.zfn.uni-bremen.de mkdir /home/testuser/cryfsbackup
Nun testen Sie, ob sich der Ordner von backup.zfn.uni-bremen.de hier mounten lässt:
# sshfs testuser@backup.zfn.uni-bremen.de:/home/testuser/cryfsbackup/ /home/testuser/cryfsbackup/
Der Ordner sollte nun zu sehen sein:
# df
Nun erstellen Sie einen Verschlüsselten Ordner mit dem Passwort "Abc!123" :
# cryfs /home/testuser/cryfsbackup /home/testuser/mybackup
Dieses kann einen Moment dauern. Wenn auf dem Server backup.zfn.uni-bremen.de in dem Ordner /home/testuser/cryfsbackup/ viele kleine Ordner entstanden sind, ist das ein gutes Zeichen. Die Verschlüsselung des Ordners /home/testuser/mybackup benötigt später nur 10% zusätzlichen Platz. Hacker können aber ohne das zusätzliche Passwort diese Dateien nicht auslesen oder verändern.
Backup
Bitte erstellen Sie ein Backupskript mit folgenden Inhalt. Achten Sie darauf, testuser und Abc!123 gegen Ihren Account und ein sinnvolles Passwort zu ersetzen.
#!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # Test ob Job schon läuft df | egrep "cryfsbackup|mybackup" && { echo "Läuft schon" 1>&2 ; exit 1; } # Backup.zfn.uni-bremen.de mounten sshfs testuser@backup.zfn.uni-bremen.de:/home/testuser/cryfsbackup/ /home/testuser/cryfsbackup/ # Verschlüsselung des Ordners starten CRYFS_FRONTEND=noninteractive mkdir -p /home/testuser/mybackup/ echo Abc!123 | cryfs /home/testuser/cryfsbackup /home/testuser/mybackup # Produktive Dateien mit dem Backup synchronisieren rsync -av -delete /home/testuser/Dokumente /home/testuser/mybackup/ # Und alles wieder beenden sync cryfs-unmount "/home/testuser/mybackup" sync umount /home/testuser/cryfsbackup/
Restore
Das zurückholen der Dateien unterscheidet sich nur durch die Reihenfolge beim rsync. Um unbekannte Dateien nicht zu löschen fehlt das delete. Bitte erstellen Sie folgendes Skript:
#!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # Test ob Job schon läuft df | egrep "cryfsbackup|mybackup" && { echo "Läuft schon" 1>&2 ; exit 1; } # Backup.zfn.uni-bremen.de mounten sshfs testuser@backup.zfn.uni-bremen.de:/home/testuser/cryfsbackup/ /home/testuser/cryfsbackup/ # Verschlüsselung des Ordners starten CRYFS_FRONTEND=noninteractive echo Abc!123 | cryfs /home/testuser/cryfsbackup /home/testuser/mybackup # Produktive Dateien mit dem Backup synchronisieren rsync -av /home/testuser/mybackup/Dokumente /home/testuser/ # Und alles wieder beenden sync cryfs-unmount "/home/testuser/mybackup" sync umount /home/testuser/cryfsbackup/
Variationen
Sieben Sicherungen, die nach sieben Tagen überschrieben werden:
heute=`date +%a` mkdir -p /home/testuser/mybackup/$heute rsync -av -delete /home/testuser/Dokumente /home/testuser/mybackup/$heute
Logfile mit Zusammenfassung:
date >> /var/log/backup.log find /home/testuser/mybackup/ | wc -l >> /var/log/backup.log
Quellen
https://www.cryfs.org/howitworks