Sebastian Mogilowskis Blog

Just another blog about administration, linux and other stuff

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.

, , , ,

One thought on “Notebook Backup to external crypted disk

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.