Backupjes maken van de home directory

Tja onder deze prachtige titel heb ik besloten om toch maar weer eens dit logje te gaan gebruiken voor het documenteren van dingen die ik anders regelmatig weer opnieuw moet uitzoeken. En wie weet heeft iemand anders er ook nog wat aan.

Het grote doel is backuppen. Ik wil dat er een backup van mijn /home directory wordt gemaakt op het moment dat ik mijn externe disk inplug. Hiervoor is het nodig dat de externe schijf altijd een voorspelbaar mount point heeft en niet iets randomachtigs dat ubuntu voor mij bedenkt.

Stap 1 is dan ook een udev-regel maken en wel in /etc/udev/rules.d/10-local.rules. Deze wordt als eerste verwerkt en dat is belangrijk. Ik wil dat mijn schijf bekend wordt als /dev/exthd. udev kan dit doen voor mij maar dan moet ik wel aan udev vertellen hoe de schijf te herkennen valt.

Substap 1a is zoeken hoe de schijf te herkennen valt. Als de schijf wordt aangesloten gaat Linux allerlei dingen uitzoeken. Deze informatie wordt opgeslagen in een bestandssysteem dat beschikbaar is onder /sys. Ergens in die structuur staat hoe de externe schijf te herkennen is. Om die info boven water te krijgen heb ik onderstaande procedure gevolgd nadat ik de schijf had aangesloten en ingeschakeld. Ubuntu mount ‘m dan automatisch.

# Kijken hoe de schijf nu heet:
mount
/dev/sdb5 on /media/disk type vfat (rw,nosuid,nodev,uhelper=hal,shortname=mixed,uid=1000,utf8,umask=077,flush)
# OK schijf heet dus /dev/sdb
# locatie van de informatie over deze schijf vinden:
udevinfo -q path -n /dev/sdb
/block/sdb
# ok info staat dus in /block/sdb
# opvragen info:
udevinfo -a -p /sys/block/sdb
# heel veel info, waaronder:
ATTRS{vendor}=="DMI "
ATTRS{model}=="Ultra HDD "

Concluse: udev kan de schijf herkennen aan de hand van de model naam ‘Ultra HDD’. Hoera. Tijd voor stap 1b: het aanmaken van de regel in /etc/udev/rules.d/10-local.rules.

SUBSYSTEM=="block",ATTRS{model}=="Ultra HDD ",NAME="exthd%n"

Testen kan met ‘udevtest /sys/block/sdb’ en activeren van de regel kan met /etc/init.d/udev restart. Dan zou de schijf voortaan onder de nieuwe naam bekend moeten staan.

Stap 2 is het maken van een mountpoint: bv ‘mkdir /mnt/exthd’. Voeg dan aan /etc/fstab het device en mountpunt toe:

/dev/exthd6 /mnt/exthd ext2 rw,user,noauto,exec 0 0

Stap 2 is het maken van het backupscriptje. Dat kan van alles zijn. Bij mij ziet het scriptje er zo uit:

#!/bin/sh

# try to mount
/bin/mount /mnt/exthd
if [ $? -eq 0 ] || [ $? -eq 32 ]; then
# Backup home directory
rsync -a --delete /home/rutger /mnt/exthd/Backup/localhost
fi

Daarnaast is er nog een scriptje dat gerund wordt als de schijf wordt aangesloten:

#!/bin/sh
su - rutger;/home/rutger/scripts/backup_home &

Deze wordt door udev aangeroepen. De reden hiervoor is dat udev wacht totdat het scriptje is uitgevoerd. Een backup maken kan lang duren dus het bovenstaande scriptje roept het backupscriptje aan en stopt er dan direct mee. En dit dient dat ook nog even worden toegevoegd aan de udevregel in /etc/udev/rules.d/10-local.rules:

SUBSYSTEM=="block",ATTRS{model}=="Ultra HDD ",NAME="exthd%n",RUN+="/home/rutger/scripts/run_exthd"

En dat is het dan.

Comments are closed.