LINUX.ORG.RU
решено ФорумAdmin

Правило udev на запуск скрипта при подключении флешки

 , ,


2

1

Коллеги, добрый день. Пытаюсь написать правило udev, которое бы запускало указанный скрипт при подключении конкретной usb-флешки. Проблема в том, что скрипт выполняется 2 раза при каждом подключении. Помогите, пожалуйста, поправить правило.

Имеется:

  • CentOS 6.6 i686
  • Версия udev
    yum list installed | grep udev
    libudev.i686         147-2.57.el6         @anaconda-CentOS-201410241409.i386/6.6
    udev.i686            147-2.57.el6         @anaconda-CentOS-201410241409.i386/6.6
    
  • Мое правило
    cat /etc/udev/rules.d/usb.rules
    ACTION=="add", ENV{ID_SERIAL}=="SanDisk_Cruzer_Fit_4C532006070713121075-0:0", RUN+="/bin/bash /tmp/skript.sh"
    
  • Мой скрипт
    cat /tmp/skript.sh
    #!/bin/bash
    date >> /tmp/tempfile
    
  • Результат скрипта - дубли
    tail -f /tmp/tempfile
    Thu Aug  6 11:48:36 MSK 2015
    Thu Aug  6 11:48:36 MSK 2015
    Thu Aug  6 11:51:25 MSK 2015
    Thu Aug  6 11:51:25 MSK 2015
    Thu Aug  6 11:51:32 MSK 2015
    Thu Aug  6 11:51:32 MSK 2015
    Thu Aug  6 11:51:39 MSK 2015
    Thu Aug  6 11:51:39 MSK 2015
    Thu Aug  6 11:51:45 MSK 2015
    Thu Aug  6 11:51:45 MSK 2015
    

Может у тебя уже есть одно назначенное такое же правило исполнение твоего скрипта. Ведь «RUN+=» добавляет действие в существующий список.

Deleted
()
Ответ на: комментарий от gberc

Пояснение: событие создаётся не только для диска в целом (/dev/sdX), но и для каждого из его разделов (/dev/sdXY). Они также имеют свойство ID_SERIAL со значением как у диска.

Соответственно, нужно проверять, что мы обрабатываем именно событие для диска целиком.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Да, действительно на флешке был уже раздел.

gberc
() автор топика
Ответ на: комментарий от gberc

intelfx прав. я полагал, что у тебя есть забытое старое правило в /etc/udev/rules.d

сам с удев редко встречаюсь, интересный зверь

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.