правило udev не работает

Я создал правила udev которые должны монтировать USB-устройство, резервировать некоторые данные и очищать все. Я фактически работаю на сервере Debian .

Есть информация о моем устройстве USB, которое у меня есть с lsusb

Автобус 001 Устройство 003: ID 054c: 0243 Flash-накопитель Sony Corp. MicroVault

(На самом деле lsusb возвращает больше Bus / Device, но я должен написать их вручную, так как я не отправляю с моей машины Debian :))

Затем я написал свое правило udev :

 10-usb_back.rules 

в:

 /etc/udev/rules.d/ 

(Я использовал 95, потому что сценарий резервного копирования занимает несколько секунд, и я хочу запустить его как можно дольше, чтобы не задерживать другие вещи)

И, наконец, само правило:

 ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="054c", ATTR{idProduct}=="0243", RUN+="/usr/local/bin/mount_usb" ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="054c", ATTR{idProduct}=="0243", RUN+="/usr/local/bin/backup_database" 

Я тоже пробовал это:

 ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="054c", ATTR{idProduct}=="0234", RUN+="bash /usr/local/bin/mount_usb" 

Неудачно 🙁

Затем я перезапускаю udev

 sudo /etc/init.d/udev restart 

И когда я подключаю свое USB-устройство, я получил это странное сообщение:

[1348.295280] sd 6: 0: 0: 0: [sdc] Предположим, что кэш кэша: напишите

дважды

Но ничего не случилось. Нет USB-устройства, нет резервных копий данных.

 I looked with tail -f /var/log/message 

И USB-накопитель выглядит как обнаруженный:

 usb 1-3: Product Storage Media usb 1-3 Manufacturer Sony` ... 

Что-то должно быть что-то не так, но я не знаю, что, ни где 🙁

Изменить: Поскольку я немного ленив, потому что я не могу переписать все с моего сервера, пожалуйста, запросите дополнительную информацию, если это необходимо, например, сценарий или другие сообщения журналов 🙂

У вас есть орфографический ATTR, в этом случае он должен быть ATTRS.

Разве эти опечатки в части idProduct правил?

У вас есть следующее:

 ATTR{idProduct}=="0234" 

Не должно быть так:

 ATTR{idProduct}=="0243" 

Основываясь на выходе из этой строки:

 Bus 001 Device 003: ID 054c:0243 Sony Corp. MicroVault Flash Drive 

Попробуйте взглянуть на выход для udevadm info --path=path/to/device --attribute-walk Он расскажет вам все атрибуты и подсистемы, которые действительны для устройства. Например, у устройства USB, которое у меня есть, SUBSYSTEM="tty" , чтобы распознать USB для этого устройства, вам нужно поставить SUBSYSTEMS=="usb" (примечание: множественная подсистема * s *). Я подозреваю, что здесь может быть что-то подобное. В любом случае udevadm info --attribute-walk – действительно полезный инструмент для отладки проблем udev.

Также ATTR {key} недопустим, вместо этого используйте ATTRS {key} (Ранее упоминалось, но некоторые из ваших примеров по-прежнему используют неправильную форму.)