[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Regras para hd externo com udev



Estou tentando automatizar um script de backup aqui na empresa utilizando regras do udev... preciso executar um script ao usuario conectar e outro ao remover o hd externo.

Fiz o seguinte:
kasv021:/home/fernando# cat /etc/udev/backupmovel.rules
ACTION="" ATTRS{product}=="Iomega HDD USB 2.0 Drive", RUN+="/home/fernando/remove.sh"

ACTION="" ATTRS{manufacturer}=="Iomega", KERNEL=="sd*", NAME="%k", SYMLINK="iomega" RUN+="/home/fernando/backupmovel.sh"


E um link simbolico para o arquivo /etc/udev/backupmovel.rules já que a regras sao lidas em /etc/udev/rules.d pelo daemon.
lrwxrwxrwx 1 root root 34 2008-01-17 11:03 /etc/udev/rules.d/001_bkpmovel.rules -> /etc/udev/backupmovel.rules

Quando coloco o hd externo na porta usbo script /home/fernando/backupmovel.sh é executado (neste teste que estou fazendo ele é simples, somente cria um diretorio em meu diretorio home) com sucesso.

Mas já na remoção do hd externo o script /home/fernando/remove.sh não é executado, pois deveria ser criada uma pasta chamada "removidobackup" em /home/fernando e isto nao acontece.



Alguem sabe o que posso estar fazendo de errado? Será que não está conflitando com alguma regra do udev da distro debian?

Abaixo segue a saida do comando udevtest é a seguinte:

parse_file: reading '/etc/udev/rules.d/001_bkpmovel.rules' as rules file
parse_file: reading '/etc/udev/rules.d/020_permissions.rules' as rules file
parse_file: reading '/etc/udev/rules.d/025_libgphoto2.rules' as rules file
parse_file: reading '/etc/udev/rules.d/025_libsane.rules' as rules file
parse_file: reading '/etc/udev/rules.d/025_logitechmouse.rules' as rules file
parse_file: reading '/etc/udev/rules.d/035_kino.rules' as rules file
parse_file: reading '/etc/udev/rules.d/85-pcmcia.rules' as rules file
parse_file: reading '/etc/udev/rules.d/libnjb.rules' as rules file
parse_file: reading '/etc/udev/rules.d/udev.rules' as rules file
parse_file: reading '/etc/udev/rules.d/z20_persistent-input.rules' as rules file
parse_file: reading '/etc/udev/rules.d/z20_persistent.rules' as rules file
parse_file: reading '/etc/udev/rules.d/z25_persistent-cd.rules' as rules file
parse_file: reading '/etc/udev/rules.d/z25_persistent-net.rules' as rules file
parse_file: reading '/etc/udev/rules.d/z45_persistent-net-generator.rules' as rules file
parse_file: reading '/etc/udev/rules.d/z50_run.rules' as rules file
parse_file: reading '/etc/udev/rules.d/z55_hotplug.rules' as rules file
parse_file: reading '/etc/udev/rules.d/z60_hdparm.rules' as rules file
parse_file: reading '/etc/udev/rules.d/z60_xserver-xorg-input-wacom.rules' as rules file
parse_file: reading '/etc/udev/rules.d/z75_cd-aliases-generator.rules' as rules file
parse_file: reading '/etc/udev/rules.d/z99_hal.rules' as rules file
This program is for debugging only, it does not create any node,
or run any program specified by a RUN key. It may show incorrect results,
if rules match against subsystem specfic kernel event variables.

main: looking at device '/block/sdb' from subsystem 'block'
udev_rules_get_name: reset symlink list
udev_rules_get_name: add symlink 'iomega'
udev_rules_get_name: rule applied, 'sdb' becomes 'sdb'
run_program: 'usb_id -x'
run_program: '/lib/udev/usb_id' (stdout) 'ID_VENDOR=ST332082'
run_program: '/lib/udev/usb_id' (stdout) 'ID_MODEL=0A'
run_program: '/lib/udev/usb_id' (stdout) 'ID_REVISION=0000'
run_program: '/lib/udev/usb_id' (stdout) 'ID_SERIAL=ST332082_0A_DEF10C88A98F'
run_program: '/lib/udev/usb_id' (stdout) 'ID_TYPE=disk'
run_program: '/lib/udev/usb_id' (stdout) 'ID_BUS=usb'
run_program: '/lib/udev/usb_id' returned with status 0
run_program: 'edd_id --export /dev/.tmp-8-16'
run_program: '/lib/udev/edd_id' (stderr) 'no kernel EDD support'
run_program: '/lib/udev/edd_id' returned with status 2
run_program: 'path_id /block/sdb'
run_program: '/lib/udev/path_id' (stdout) 'ID_PATH=pci-0000:00:13.5-usb-0:1:1.0-scsi-0:0:0:0'
run_program: '/lib/udev/path_id' returned with status 0
udev_rules_get_name: add symlink 'disk/by-id/usb-ST332082_0A_DEF10C88A98F'
udev_rules_get_name: add symlink 'disk/by-path/pci-0000:00:13.5-usb-0:1:1.0-scsi-0:0:0:0'
run_program: 'vol_id --export /dev/.tmp-8-16'
run_program: '/lib/udev/vol_id' (stderr) '/dev/.tmp-8-16: unknown volume type'
run_program: '/lib/udev/vol_id' returned with status 4
udev_device_event: device '/block/sdb' already in database, validate currently present symlinks
udev_node_add: creating device node '/dev/sdb', major = '8', minor = '16', mode = '0660', uid = '0', gid = '25'
udev_node_add: creating symlink '/dev/iomega' to 'sdb'
udev_node_add: creating symlink '/dev/disk/by-id/usb-ST332082_0A_DEF10C88A98F' to '../../sdb'
udev_node_add: creating symlink '/dev/disk/by-path/pci-0000:00:13.5-usb-0:1:1.0-scsi-0:0:0:0' to '../../sdb'
main: run: '/home/fernando/backupmovel.sh'
main: run: 'socket:/org/kernel/udev/monitor'
main: run: 'socket:/org/freedesktop/hal/udev_event'


Se alguem tiver alguma dica eu agradeço
Fernando Mariano.
Reply to: