Запуск скрипта при подключении USB-устройства

Пожалуйста, не отмечайте это как дубликат, так как это другой вопрос!

Я пытаюсь запустить скрипт всякий раз, когда Pendrive подключен к моей системе. Я следил за этим и этим вопросом, и он работает, но все же есть некоторые проблемы.

Это мой файл правил udev:

ACTION=="add", ATTRS{idVendor}=="8564", ATTRS{idProduct}=="1000", RUN+="/usr/local/my_script.sh"

и это мой сценарий:

#! / Бен / Баш

env > /tmp/env.out
cp -r /media/* имя устройства */* ~/test/

У меня есть 2 вопроса:

1.При каждом подключении моего скрипта USB-устройства выполняется, потому что файл / env.out генерируется в / tmp, но данные с USB-устройства не копируются в тестовый каталог, если я запускаю скрипт вручную, он работает нормально! Зачем??

2.Как сделать мой файл правил более общим, чтобы он работал на любом подключенном USB-устройстве, не зная его идентификатора?

Моя идея заключается в том, чтобы автоматически скопировать все данные с подключенного USB-устройства на мой компьютер, когда он подключен.

Заранее спасибо!

3 ответа

Решение

Чтобы ответить на мой собственный вопрос:

1. JavaScript не работает, потому что это нужно sudo права на бег..

Решение этого:

Сделать этот скрипт sudo исполняемый файл!

РЕДАКТИРОВАТЬ файл sudoers, используя

sudo visudo

После строки 25 (т.е. %sudo ALL=(ALL)) Добавь это

username ALL=(ALL) NOPASSWD: /home/username/my_script.sh

Теперь мы можем использовать sudo в этом скрипте без запроса пароля sudo

но это может вызвать некоторые проблемы с безопасностью, поэтому, пожалуйста, обратитесь по этой ссылке

2. Ответьте на мой второй вопрос:

Чтобы этот скрипт работал на любом подключенном USB-устройстве, измените файл правил на этот

ACTION=="add", ATTRS{idVendor}=="**** ", ATTRS {idProduct} ==" **** ", RUN + =" / usr / local / my_script.sh "

asterik (*) говорит, что это должно быть сделано для каждого подключенного USB-устройства!

Это оно! Убедитесь, что скрипт является исполняемым и подключите USB!

Наслаждаться!

Взгляни на это, каракатица.

Попробуйте заменить тильду полным путем к вашему домашнему каталогу. Я не знаю, сработает ли это, но вы говорите, что скрипт работает, когда вы запускаете его напрямую, но когда он запускается автоматически, он этого не делает: это заставляет меня думать, что проблема может быть связана с тем, что он запускается другим пользователь, когда он запускается автоматически, и тильда разрешает разные значения для разных пользователей.

Другие вопросы по тегам