Automtisches Backup von USB Platteüber udev-Regel

Hast Du Probleme mit Hardware, die durch die anderen Foren nicht abgedeckt werden? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
feldmaus
Beiträge: 1225
Registriert: 14.06.2005 23:13:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Deutschland

Automtisches Backup von USB Platteüber udev-Regel

Beitrag von feldmaus » 03.02.2012 14:32:53

Mahlzeit,

ich versuche mein Backup-System zu verbessern. Und zwar soll meine zu sichernden Quellen automatisch gesichert werden, wenn die entsprechende Backup-USB-Platte angeschlossen wird mit "rsnapshot", dazu habe ich eine udev-Regel erstellt "/etc/udev/run-backup.rules" und einen Link unter "/etc/udev/rules.d/z70_run-backup.rules" mit <root:root rw-r-r> als Berechtigung.

Code: Alles auswählen

ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}=="70a2aedf-ce7e-4e12-8f0b-ec7974ebdbd4", KERNEL=="[sh]d[b-z]", RUN+="/usr/bin/touch /tmp/funzt"
Leider tut sich gar nichts. Fehlermeldungen konnte ich keine finden bis jetzt, unter Umständen wird es ja auch nicht als Fehler angesehen!?.
Der Befehl <udevadm info -q all -n /dev/sdc> gibt mir folgendes raus:

Code: Alles auswählen

...
E: ID_FS_UUID=70a2aedf-ce7e-4e12-8f0b-ec7974ebdbd4
E: ID_FS_UUID_ENC=70a2aedf-ce7e-4e12-8f0b-ec7974ebdbd4
...
Der Befehl <udevadm info -q all -n /dev/mapper/udisks-luks-uuid-70a2aedf-ce7e-4e12-8f0b-ec7974ebdbd4-uid1000> führt zur gleichen Ausgabe. Und <blkid> zeigt folgendes an:

Code: Alles auswählen

/dev/sda1: UUID="4EA82F66A82F4BB1" TYPE="ntfs" 
/dev/sda2: LABEL="BOOT" UUID="f2a8cead-601a-45fe-90fd-3611fdddd403" TYPE="ext4" 
/dev/sda5: LABEL="ROOT" UUID="decbfffc-2b27-40af-927d-af3008b18f00" TYPE="ext4" 
/dev/sda6: LABEL="HOME" UUID="66ebaa28-f805-4ff0-a158-72034a6a21f4" TYPE="ext4" 
/dev/sdb: UUID="51b9180d-9b33-4498-acb2-38a21d0bf2d2" TYPE="crypto_LUKS" 
/dev/mapper/udisks-luks-uuid-51b9180d-9b33-4498-acb2-38a21d0bf2d2-uid1000: LABEL="SEAG-1TB" UUID="51b9180d-9b33-4498-acb2-38a21d0bf2d2" TYPE="ext3" 
/dev/mapper/udisks-luks-uuid-70a2aedf-ce7e-4e12-8f0b-ec7974ebdbd4-uid1000: LABEL="AIRY-1TB" UUID="70a2aedf-ce7e-4e12-8f0b-ec7974ebdbd4" TYPE="ext3" 
/dev/sdc: UUID="70a2aedf-ce7e-4e12-8f0b-ec7974ebdbd4" TYPE="crypto_LUKS" 
Zum testen soll er einfach eine Datei erstellen /tmp/funzt. Hat Jemand eine Idee wie ich weiter vorgehen könnte?

Grüße Markus
Zuletzt geändert von feldmaus am 03.02.2012 16:54:27, insgesamt 1-mal geändert.

spiralnebelverdreher
Beiträge: 1058
Registriert: 23.12.2005 22:29:03
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Frankfurt am Main

Re: Automtisches Backup von USB Platteüber udev-Regel

Beitrag von spiralnebelverdreher » 03.02.2012 14:36:00

KERNEL=="[sh]d[b-z]", RUN+="/usr/bin/touch"

Ist schon lange her dass ich mal ne udev-regel angepasst habe, aber ist da nicht ein "h" zuviel in der Zeile ?

Benutzeravatar
Tintom
Beiträge: 1294
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Automtisches Backup von USB Platteüber udev-Regel

Beitrag von Tintom » 03.02.2012 16:20:32

Funktioniert es ohne den Parameter KERNEL=... ?

Benutzeravatar
feldmaus
Beiträge: 1225
Registriert: 14.06.2005 23:13:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Deutschland

Re: Automtisches Backup von USB Platteüber udev-Regel

Beitrag von feldmaus » 03.02.2012 16:55:31

Tintom hat geschrieben:Funktioniert es ohne den Parameter KERNEL=... ?
Nein

gugus
Beiträge: 253
Registriert: 04.09.2002 17:41:17
Wohnort: da wo ich zu Hause bin

Re: Automtisches Backup von USB Platteüber udev-Regel

Beitrag von gugus » 03.02.2012 20:02:30

Servus

Bei mir funktioniert es so

Code: Alles auswählen

SUBSYSTEM=="block", KERNEL=="sd?1", ATTRS{idVendor}=="1bcf", ATTRS{idProduct}=="0c31",  SYMLINK+="usb-backup", RUN+="/usr/local/bin/usb-backup.sh"
Gruss
gugus

rendegast
Beiträge: 14272
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Automtisches Backup von USB Platteüber udev-Regel

Beitrag von rendegast » 04.02.2012 06:24:07

Beispiele:

Code: Alles auswählen

grep RUN /lib/udev/rules.d/*
resp.
egrep -h -o "RUN.*" /lib/udev/rules.d/*

"/etc/udev/rules.d/z70_run-backup.rules" mit <root:root rw-r-r> als Berechtigung.
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}=="70a2aedf-ce7e-4e12-8f0b-ec7974ebdbd4", KERNEL=="[sh]d[b-z]", RUN+="/usr/bin/touch /tmp/funzt"
Leider tut sich gar nichts.
Ist "z70_*" vielleicht zu spät?
Eventuell greift vorher eine STOP-Regel.
Was gibt ein Testdurchlauf
'udevadm test /sys/block/sdX/sdXY' resp. für das mapper- oder luks-device unterhalb von /sys/block/.

/dev/mapper/udisks-luks-uuid-70a2aedf-ce7e-4e12-8f0b-ec7974ebdbd4-uid1000
(ein Link?)
ist nicht mit einem Blockdevice /dev/sdX verbunden, eher mit /dev/mapper/xxx ?
Dann sollte vielleicht
KERNEL=="[sh]d[b-z]" entsprechend geändert werden KERNEL=="xxx".
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Brancaleone
Beiträge: 62
Registriert: 20.02.2009 14:24:01

Re: Automtisches Backup von USB Platteüber udev-Regel

Beitrag von Brancaleone » 04.02.2012 22:31:52

Hehe ... lustig .... so was habe ich vor ein paar Monaten mal programmiert mit einem zusätzlichen zenity-Popup und inkrementellem Backup nach Tagen geordnet. Ich werd mal gucken, ob ich davon eine Version finde .... (war 'ne "Aufttragsarbeit" für einen Bekannten, deshalb hab ich leider die Skripte nicht mehr parat)
OS:
Debian Testing mit LXDE

Lizenz:
WTFPL V2
http://sam.zoy.org/wtfpl/

Brancaleone
Beiträge: 62
Registriert: 20.02.2009 14:24:01

Re: Automtisches Backup von USB Platteüber udev-Regel

Beitrag von Brancaleone » 17.02.2012 12:06:00

Also ich hab hier noch ne Beta-Variante gefunden. Die Platte hat zwei verschlüsselte Partitionen, homebu als Backup für /home und speicher1 zum ... irgendwas speichern eben :D

UDEV-Rule (/etc/udev/rules.d/85-harddisk.rules)

Code: Alles auswählen

SUBSYSTEM=="block", KERNEL=="sd?1", ACTION=="add", ATTRS{idVendor}=="0bc2", ATTRS{idProduct}=="2300", SYMLINK+="harddisk%n", RUN+="/usr/local/sbin/harddisk-decrypt.sh"
SUBSYSTEM=="block", KERNEL=="sd?1", ACTION=="remove", RUN+="/usr/local/sbin/harddisk-remove.sh"
Decrypt-skript (/usr/local/sbin/harddisk-decrypt.sh)

Code: Alles auswählen

#! /bin/bash


LocalDisplay=:0
export DISPLAY=$LocalDisplay 
USER=`who | grep $LocalDisplay | sed -n 1p | cut -f 1 -d ' '`

su $USER -c 'zenity --notification --timeout=5 --text="harddisk gefunden"'
logger "harddisk wird entschlüsselt"

su $USER -c 'zenity --notification --timeout=5 --text="harddisk wird entschlüsselt"'
cryptsetup luksOpen /dev/disk/by-uuid/f7bc3728-dd3e-43a1-9b11-bd9505691c3c --key-file=/etc/keys/extern.key homebu
cryptsetup luksOpen /dev/disk/by-uuid/416ee393-34ad-4b72-a84e-1c10dfde3d5e --key-file=/etc/keys/extern.key speicher1

su $USER -c 'zenity --notification --timeout=5 --text="harddisk wird gemountet"'
mount -o user,exec,rw,defaults,noatime /dev/disk/by-uuid/e09ca1f0-2bb4-4ad2-bcd0-4f3c2ae0c7bc /media/sea_ext
mount -o user,exec,rw,defaults,noatime /dev/disk/by-uuid/9717e06f-de1b-4afa-8e43-a7c22f67d812 /media/homebu

if [ -h /dev/disk/by-uuid/9717e06f-de1b-4afa-8e43-a7c22f67d812 ]
   then                       
	 if su $USER -c 'zenity --question --text="Backup starten ???" '; then
    	su $USER -c 'zenity --notification --timeout=20 --text="Backup Läuft"'
    	harddisk-backup.sh
	 else
    	su $USER -c 'zenity --notification --timeout=20 --text="Ok vielleicht beim nächsten Mal"'
	 fi
else
exit
fi
und ein Skript um sauberen unmounten, falls die Platte "gewaltsam" vom Rechner getrennt wird (/usr/local/sbin/harddisk-remove.sh)

Code: Alles auswählen

#! /bin/bash

if [ -h /dev/mapper/homebu -a -h /dev/harddisk1 ] 
   then exit 
else 
   umount /dev/mapper/homebu
   cryptsetup luksClose homebu
   umount /dev/mapper/speicher1
   cryptsetup luksClose speicher1
fi
OS:
Debian Testing mit LXDE

Lizenz:
WTFPL V2
http://sam.zoy.org/wtfpl/

Antworten