Notebook Backup to external crypted disk
Das ist eine kleine Dokumentation, wie ich Sicherungen von meinem Notebook mache. Ich verwende eine externe USB-Festplatte, welche mit meiner Dockingstation verbunden ist. Beim einloggen, wird geprüft ob die Platte vorhanden ist und sie entsprechend eingehängt. Bitte beachtet, dass einige Dinge in dieser Anleitung ggf. geändert werden müssen. Der Benutzername “sebastian” sollte durch eueren eigenen ersetzt werden und “sdb” muss ggf. auch angepasst werden.
1 Cryptsetup installieren
sudo aptitude install cryptsetup
2 Cryptodisk erstellen
sudo cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/sdb sudo cryptsetup luksOpen /dev/sdb backup
Um die Platte automatisch zu mounten, wird ein keyfile benötigt.
mkdir /home/sebastian/backup sudo dd if=/dev/urandom of=/home/sebastian/backup/keyfile bs=1024 count=4 sudo cryptsetup luksAddKey /dev/sdb /home/sebastian/backup/keyfile
3 Filesystem erzeugen
sudo mkfs.ext4 /dev/mapper/backup sudo e2label /dev/mapper/backup Backup
4 Mountpunkt erstellen
sudo mkdir /media/backup sudo chown sebastian:sebastian /media/backup
5 Mount
sudo mount /dev/mapper/backup /media/backup
6 Automount einrichten
Die externe Backupfestplatte ist nicht immer mit dem System verbunden. Deshalb wird zuerst geprüft ob sie vorhanden ist. Da sich bei externen Festplatten nicht garantieren lässt, dass immer “sdb” verwendet wird, soll die UUID verwendet werden.
6.1 UUID ermitteln
sudo blkid
Man sollte eine Ausgabe wie diese bekommen:
[...] /dev/mapper/backup: LABEL="Backup" UUID="4d0c0001-3cac-43ad-abf7-904e3a2f91b1" TYPE="ext4" [...]
6.2 Skript erstellen
vim ~/backup/mount.sh
Skript:
#!/bin/bash if [ /dev/disk/by-uuid/e9fbd5d9-215b-4a82-a794-7ab7724ac3f8 ] then cryptsetup luksOpen -d ~/backup/keyfile /dev/disk/by-uuid/e9fbd5d9-215b-4a82-a794-7ab7724ac3f8 backup mount /dev/mapper/backup /media/backup fi
Ausführbar machen:
chmod +x ~/backup/mount.sh
6.2 Skript zu sudoers hinzufügen
sudo visudo
Öffnet das sudoers file und fügt folgendes ein:
sebastian ALL = (root) NOPASSWD: /home/sebastian/backup/mount.sh
Anschließend das Skript in den Autostart aufnehmen. http://wiki.ubuntuusers.de/Autostart
7 Backup
Rsync-Skript um die Backups zu erstellen.
7.1 Skript anlegen
vim ~/backup/backup.sh
Skript:
#!/bin/bash logger "Start backup" if mount|grep "/media/backup"; then if [ $((`date +"%u"`%2)) -eq 0 ]; then SUBDIR='01' else SUBDIR='02' fi rsync -a --delete /home/sebastian /media/backup/$SUBDIR/ else logger "Backupdisk not found. Backup skipped." fi logger "Finished backup"
Ausführbar machen:
chmod +x ~/backup/backup.sh
Dieses Skript sichert mein Home-Verzeichnis in zwei Verzeichnisse. Date +”%u” liefert den Tag der Woche. (1,2,3,4,5,6,7) Es wechselt die Verzeichnisse je nachdem ob die Nummer gerade oder ungerade ist. Sollte “/media/backup” nicht gemounted sein, beendet es sich ohne eine Sicherung durchzuführen.
Man kann einfach weitere rsync Zeilen hinzufügen oder “SUBDIR” gleich durch das Ergebnis von date +”%u” ersetzen um an jedem Tag der Woche eine eigene Sicherung durchzuführen.
Der “logger” Befehl schreibt noch ein paar Informationen in das Syslog. So lässt sich nachprüfen ob, wann und wie lange die Sicherung gelaufen ist.
7.2 Create cronjob
crontab -e
Einfügen:
0 21 * * * /home/sebastian/backup/backup.sh > /dev/null
Dieser Cronjob führt das Skript täglich um 21:00 Uhr aus.
List of Ubuntu Based Linux Distributions and Live Cd’s Reset MySQL Root Password
This is a very basic idea of how to use the task scheduler and batch files to make backups.