Intereting Posts
Разница между nointegrity, noatime & relatime Не удается отправить почту через sendmail Преобразовать однонаправленный пакет UDP в трансляцию? Почему у меня есть только ограниченное количество файлов подкачки Как найти, какие файлы содержат упоминания имени подстановочного образа? Почему вывод команды hostname отличается от / etc / hosts? opengl / glx core dumps – общие драйверы intel linux, RHEL6 Предотвращение падения пакетов IPv6 Router Solisitation (Type 133) Как написать переопределения dconf для привязки к сайтам? Что означает «INFO: задача XXX, заблокированная на протяжении более 120 секунд», в точности означает Linux? ImportError: libavcodec.so.56: невозможно открыть файл общих объектов: нет такого файла или каталога прозрачность терминала, проблема с Imagemagick и X11 Где g ++ хранит скомпилированные источники? настройка разрешения хоста для одной команды? Как узнать все файлы на других машинах, используя сценарий оболочки bash?

правило 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} (Ранее упоминалось, но некоторые из ваших примеров по-прежнему используют неправильную форму.)