Here is the documentation, how i making backups of my notebook. I use a external USB harddisk, which is connected to my docking station. On system logon, i check if the external disk is present and mount it. A cronjob starts a backup script, which creates backups with rsync if the backup partition is mounted. Please note, that you have to replace some values in this howto. Replace “sebastian” with your username and replace “sdb” if it is needed.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 Install cryptsetup1 Cryptsetup installieren
sudo aptitude install cryptsetup
2 Create crypto disk2 Cryptodisk erstellen
sudo cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/sdb sudo cryptsetup luksOpen /dev/sdb backup
For an automatic mount of the backup disk, you need a keyfile: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 Create Filesystem3 Filesystem erzeugen
sudo mkfs.ext4 /dev/mapper/backup sudo e2label /dev/mapper/backup Backup
4 Create Mount point4 Mountpunkt erstellen
sudo mkdir /media/backup sudo chown sebastian:sebastian /media/backup
5 Mount5 Mount
sudo mount /dev/mapper/backup /media/backup
6 Create automount6 Automount einrichten
The external backup storage is not always connected with my system. I created a script which mount the external harddrive if it is connected. For an external connected device it is not sure that it always called “sdb”. So i used the UUID instead.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 Get device UUID6.1 UUID ermitteln
sudo blkid
You will get an output like this:Man sollte eine Ausgabe wie diese bekommen:
[...] /dev/mapper/backup: LABEL="Backup" UUID="4d0c0001-3cac-43ad-abf7-904e3a2f91b1" TYPE="ext4" [...]
6.2 Create script6.2 Skript erstellen
vim ~/backup/mount.sh
Script: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
Make executable:Ausführbar machen:
chmod +x ~/backup/mount.sh
6.2 Add script to sudoers6.2 Skript zu sudoers hinzufügen
sudo visudo
Open the sudoers file and insert:Öffnet das sudoers file und fügt folgendes ein:
sebastian ALL = (root) NOPASSWD: /home/sebastian/backup/mount.sh
Add this script to startup applications. http://wiki.ubuntuusers.de/AutostartAnschließend das Skript in den Autostart aufnehmen. http://wiki.ubuntuusers.de/Autostart
7 Backup7 Backup
Script with rsync to create the backups.Rsync-Skript um die Backups zu erstellen.
7.1 Backup script7.1 Skript anlegen
vim ~/backup/backup.sh
Script: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"
Make executable:Ausführbar machen:
chmod +x ~/backup/backup.sh
This script backups my homedir into two folders. Date +”%u” returns the day of the week. (1,2,3,4,5,6,7) It switch the folders if the number is even or odd. If “/media/backup” is not mounted, the script quits without making backups.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.
You can add more rsync lines if you like, or set “SUBDIR” to date +”%u” to make a backup every day in a different folder.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.
The “logger” command writes a view infos into the syslog.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
Insert:Einfügen:
0 21 * * * /home/sebastian/backup/backup.sh > /dev/null
This cronjob executes the backup script every day at 21:00 oclock.Dieser Cronjob führt das Skript täglich um 21:00 Uhr aus.
Lilia C. Donovan
29 Jun 2013This is a very basic idea of how to use the task scheduler and batch files to make backups.