Ваш скрипт должен быть исполняемым.
Сделайте это шаг за шагом, чтобы выяснить вашу проблему:
Сначала создайте простой скрипт:
sudo nano /bin/device_added.sh
Добавьте следующие строки в скрипт device_added.sh
#!/bin/bash
echo "USB device added at $(date)" >>/tmp/scripts.log
Откройте второй скрипт.
sudo nano /bin/device_removed.sh
Затем добавьте следующие строки в скрипт device_removed.sh
.
#!/bin/bash
echo "USB device removed at $(date)" >>/tmp/scripts.log
Сохраните файлы, закройте и сделайте оба сценария исполняемыми.
$ sudo chmod +x /bin/device_added.sh
$ sudo chmod +x /bin/device_removed.sh
Далее давайте создадим правило, запускающее выполнение вышеуказанных скриптов, с именем/etc/udev/rules.d/80-test.rules
nano /etc/udev/rules.d/80-test.rules
Добавьте в него два следующих правила.
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="/bin/device_added.sh"
SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN+="/bin/device_removed.sh"
Сохраните файл и закройте его. Затем от имени root скажите systemd -udevd перезагрузить файлы правил (, это также перезагрузит другие базы данных, такие как индекс модуля ядра ), запустив.
sudo udevadm control --reload
Теперь подключите свой iphone или любой другой USB-накопитель к компьютеру и проверьте, был ли выполнен скрипт device_added.sh
. Прежде всего файл scripts.log
должен быть создан под /tmp
.
Затем в файле должна быть запись, например «USB-устройство удалено в дату _время»
Если эти шаги сработали правильно, вы можете заменить скрипт /bin/device_added.sh
своим скриптом. и поместите свое правило в/etc/udev/rules.d/80-test.rules