LinuxForum.Fans
Тема

Выполнение скрипта после монтирования флэшки

Автор: villimilli 24 сообщений 6190 просмотров
#200781

79-flash.rules

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sdd*", RUN+="/bin/mount -t auto -o defaults /dev/%k /media/%k", RUN+="/home/user/bin/flash_copy.sh"
ACTION=="remove", SUBSYSTEM=="block", KERNEL=="sdd*", RUN+="/bin/umount /dev/%k"

#200782

RUN+="/bin/mkdir -p /media/%k" - add
RUN+="/bin/rmdir /media/%k" - remove

#200785

смонтировал\отмонтировал в /media/sdd1, хотя /media/FLASHKA роднее и ближе...

как продолжить команду?? - RUN+="/bin/mkdir -p /media/%k" + RUN+="/home/user/bin/flash_copy.sh"

#200853

С учетом изменений - приблизительно так:
[console]ACTION=="add", SUBSYSTEMS=="block", KERNEL=="sdd*", RUN+="/bin/mkdir -p /media/FLASH", RUN+="/bin/mount -t auto -o nosuid,nodev,uid=1001,gid=100,dmask=0077,utf8 /dev/%k /media/FLASH", RUN+="/home/user/bin/flash_copy.sh"
ACTION=="remove", SUBSYSTEM=="block", KERNEL=="sdd*", RUN+="/bin/umount /dev/%k", RUN+="/bin/rmdir /media/FLASH"[/console]
где SUBSYSTEMS=="block"- возможно при следующей перезагрузке будут монтироваться все блочные устройства в том числе и веники (согласно данному правилу), поэтому, если это произойдет, тогда пропишите usb, но при указании более точного устройства как в Вашем случае sdd* или sd[d-z], можно оставить как есть;
/bin/mkdir -p /media/%k - избавляемся от:

Oct 24 22:56:24 linux udevd-work[11507]: '/bin/mount' (stderr) 'mount: mount point /media/sdd1 does not exist'
Oct 24 22:56:24 linux udevd-work[11507]: '/bin/mount -t auto -o defaults /dev/sdd1 /media/sdd1' returned with exitcode 32
,
не подумал, что Вы заранее не создали директорию для монтирования;
uid=пользователь,gid=группа - если будет необходимость в удалении, редактировании и т.д. от имени обычного пользователя, остальные параметры согласно монтирования системой по умолчанию (man mount в помощь);
%k - если изменится кол-во веников или параллельно подключать еще одну флешку, тогда придется вносить соответствующие изменения в правила udev, например, /media/FLASH - все подключаемые флешки в том числе и параллельные будут монтироваться в эту директорию, когда, как при указании %k будут создаваться отдельные директории для каждого устр-ва или dev/%k - все подключаемые устр-ва и разделы sd* будут монтироваться согласно заданному правилу udev в том числе выполняться скрипт, но опять же замечу, что при указании KERNEL=="sdd*" это будет касаться только данного устр-ва и его разделов, остальные монтируются согласно правилу по умолчанию.
Ну и на последок, смотрим логи udev c параметром debug - отличный помощник.
Войдите или зарегистрируйтесь, чтобы ответить.