запуск скрипта при подключении usb

Определить подключение USB диска, и выполнить скрипт

Помогите, пожалуйста, решить задачу определения подключения USB флешки, и последующего запуска скрипта CMD, если на флешке присутствуют определенные папки и файлы.

Что конкретно нужно:

1. Опрашивать USB устройства с интервалом.
2. При обнаружении подключенного диска, проверить его соответствие по наличию определенных папок и файлов.
3. Если диск отвечает заданным требованиям, то выполнить ряд скриптов и программ.
4. Продолжать отслеживать подключение USB дисков.
5. Если подключился другой диск, выполнить для него пункты 2, 3.
6. Выполнить пункт 3 только один раз, но при отключении и повторном подключении флешки, так же выполнить пункт 3 однократно.
7. Не создавать на флешке никаких файлов для реализации пунктов 2, 3.

В общем, нужно следить за подключением флешек, и запускать скрипты один раз при подключении флешки.

Основная загвоздка в первом пункте.
Пока что моих мозгов хватило сделать следующее:

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

Пункты 3-7 реализованы при помощи USB Safely Remove, и давно написанного скрипта для запуска всего остального. USB Safely Remove обнаруживает диск, и передает букву диска в мой батник в виде параметра. Но огромный минус этой программы то что она медлительная, и так же есть ряд других недостатков. Иногда она вылетает. Порой быстрей все сделать вручную касательно выполнения операций с флешкой.

Все это нужно по работе, для уменьшения рутины, а не для всякого взлома и иже с этим.

На текущем этапе нужен аналог USB Safely Remove только в виде скрипта CMD.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Источник

Как написать скрипт на флешке, который будет сам запускаться, при ее подключении на любой платформе (win, mac, lin)?

У меня есть куча sd и usb флешек, и иногда мои друзья любят их взять на короткое (очень продолжительное время), причем без моего ведома. И я вот через неделю не многу найти все свои флешки.

Я хочу написать скрипт, поместить его на флешку, и чтоб он сам запускался, при подключении флешки к пк. Скрипт простой, аля обычный GET запрос на какой нибудь мой example.com/flash_id=1. Таким образом, я буду знать, что моя флешка где-то «гуляет».

запуск скрипта при подключении usb. 5c923357cad3b505434898. запуск скрипта при подключении usb фото. запуск скрипта при подключении usb-5c923357cad3b505434898. картинка запуск скрипта при подключении usb. картинка 5c923357cad3b505434898. Помогите, пожалуйста, решить задачу определения подключения USB флешки, и последующего запуска скрипта CMD, если на флешке присутствуют определенные папки и файлы.

запуск скрипта при подключении usb. 613514112c013578759116. запуск скрипта при подключении usb фото. запуск скрипта при подключении usb-613514112c013578759116. картинка запуск скрипта при подключении usb. картинка 613514112c013578759116. Помогите, пожалуйста, решить задачу определения подключения USB флешки, и последующего запуска скрипта CMD, если на флешке присутствуют определенные папки и файлы.

Таким образом, я буду знать, что моя флешка где-то «гуляет».

запуск скрипта при подключении usb. 5b6be44e8ee8b144392450. запуск скрипта при подключении usb фото. запуск скрипта при подключении usb-5b6be44e8ee8b144392450. картинка запуск скрипта при подключении usb. картинка 5b6be44e8ee8b144392450. Помогите, пожалуйста, решить задачу определения подключения USB флешки, и последующего запуска скрипта CMD, если на флешке присутствуют определенные папки и файлы.

запуск скрипта при подключении usb. 11540352d8024a928dc33b3d9e0db91b. запуск скрипта при подключении usb фото. запуск скрипта при подключении usb-11540352d8024a928dc33b3d9e0db91b. картинка запуск скрипта при подключении usb. картинка 11540352d8024a928dc33b3d9e0db91b. Помогите, пожалуйста, решить задачу определения подключения USB флешки, и последующего запуска скрипта CMD, если на флешке присутствуют определенные папки и файлы.

Никак.
Скрипт это программа, а программа сама не может запуститься, ее должен кто-то запустить.
Сама ОС или пользователь

Это надо задания операционной системе давать на запуск определенной программы при определенных событиях, иначе никак.

запуск скрипта при подключении usb. 1be831bf3e48464b9d29e8e622839b2b. запуск скрипта при подключении usb фото. запуск скрипта при подключении usb-1be831bf3e48464b9d29e8e622839b2b. картинка запуск скрипта при подключении usb. картинка 1be831bf3e48464b9d29e8e622839b2b. Помогите, пожалуйста, решить задачу определения подключения USB флешки, и последующего запуска скрипта CMD, если на флешке присутствуют определенные папки и файлы.

запуск скрипта при подключении usb. 5a0d13bdf0dc1686392266. запуск скрипта при подключении usb фото. запуск скрипта при подключении usb-5a0d13bdf0dc1686392266. картинка запуск скрипта при подключении usb. картинка 5a0d13bdf0dc1686392266. Помогите, пожалуйста, решить задачу определения подключения USB флешки, и последующего запуска скрипта CMD, если на флешке присутствуют определенные папки и файлы.

запуск скрипта при подключении usb. 1be831bf3e48464b9d29e8e622839b2b. запуск скрипта при подключении usb фото. запуск скрипта при подключении usb-1be831bf3e48464b9d29e8e622839b2b. картинка запуск скрипта при подключении usb. картинка 1be831bf3e48464b9d29e8e622839b2b. Помогите, пожалуйста, решить задачу определения подключения USB флешки, и последующего запуска скрипта CMD, если на флешке присутствуют определенные папки и файлы.

запуск скрипта при подключении usb. 5a0d13bdf0dc1686392266. запуск скрипта при подключении usb фото. запуск скрипта при подключении usb-5a0d13bdf0dc1686392266. картинка запуск скрипта при подключении usb. картинка 5a0d13bdf0dc1686392266. Помогите, пожалуйста, решить задачу определения подключения USB флешки, и последующего запуска скрипта CMD, если на флешке присутствуют определенные папки и файлы.

Гуглить про badusb.
Можно сделать флешку с дополнительной нагрузкой, то есть флешка будет представляться в системе и как флешка и как клавиатура и например посылая комбинацию кнопок запускать командную строку в которой выполнять заданную команду.

Само собой таки вещи считаются зловредными и антивирусы на это реагируют.

Короче, тут большое поле для полёта 🙂
P.S. Антивирусы могут на это ругаться.

запуск скрипта при подключении usb. 5b6be44e8ee8b144392450. запуск скрипта при подключении usb фото. запуск скрипта при подключении usb-5b6be44e8ee8b144392450. картинка запуск скрипта при подключении usb. картинка 5b6be44e8ee8b144392450. Помогите, пожалуйста, решить задачу определения подключения USB флешки, и последующего запуска скрипта CMD, если на флешке присутствуют определенные папки и файлы.

Кто-то уже такое делал? Подскажите пожалуйста.

Билл Гейтс такое делал. Называлось Windows’95, Windows’98, Windows XP.
Наконец весь мир так завалило вирусней, что даже он убрал автозапуск по умолчанию.
И больше так никто не делал.

Источник

Выполнение скрипта при вставке флешки

Как я могу написать сценарий, который запускает событие?

Когда я вставляю флешку, Ubuntu монтирует ее и автоматически открывает Nautilus. Когда это происходит с определенной флешкой, я бы хотел открыть вторую вкладку с определенной папкой.

Я не думаю, что это можно сделать с помощью скрипта Nautilus, но как я могу сделать это с помощью скрипта Linux или расширения Nautilus?

1 ответ

Если вы запустите скрипт ниже в фоновом режиме, он проверит наличие подключенных томов. Если подключен один из определенных вами дисков, он автоматически откроет заданную папку в nautilus.

Небольшая проблема заключалась в том, что nautilus не поддерживает открытие каталога на новой вкладке из командной строки, только в новом окне. Это означает, что начальное окно, которое появляется, если вы вставляете USB-диск, должно быть изящно закрыто. Скрипт использует wmctrl чтобы сделать это, в тот момент, когда выбранная вами папка откроется.

Возможно, вам придется сначала установить его:

Сценарий

Как пользоваться

Скопируйте скрипт в пустой файл

Установите ваши диски и папки

В разделе заголовка скрипта измените строку:

где каждый кортеж представляет диск (имя) и папку внутри диска, которая должна быть открыта. Я оставил свои «тестовые» имена в качестве примера.
Если вы не уверены в точном названии вашего диска, запустите lsblk чтобы увидеть имя (без предшествующего пути к точке монтирования)

Сохранить скрипт как open_folder.py и запустите его командой:

Если все работает, как вы ожидали, добавьте его в свои приложения автозагрузки

Как это устроено

Другие файловые менеджеры

Я проверил это на pcmanfm (Lubuntu) и thunar (Xubuntu) и, как и ожидалось, в обоих случаях работает нормально.

Если вы хотите использовать его на Lubuntu или Xubuntu, измените строку:

Конечно, убедитесь wmctrl установлено

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

Обобщенная версия скрипта

Версия скрипта выше специально для одной ситуации. Чтобы иметь возможность использовать сценарий в более широком диапазоне целей (для запуска любой команды при подключении определенного диска, например, для ее резервного копирования), может быть полезна приведенная ниже версия.

В этом случае в разделе заголовка скрипта кортежи представляют:

см. настройку «тест» в скрипте ниже.

Сценарий

Как пользоваться

Скопируйте скрипт в пустой файл

Установите ваши диски и команды

Сохранить скрипт как drive_run.py и запустите его командой:

Если все работает, как вы ожидали, добавьте его в свои приложения автозагрузки

Источник

Как запустить скрипт при монтировании конкретной флешки?

Есть ли способ запустить скрипт при подключении определенного USB-устройства?

Я храню свои видео на отдельном USB и хотел бы запустить скрипт, который бы монтировал папку видео на устройстве USB в папку в домашней папке.

Затем вам нужно запустить / включить сервис:
sudo systemctl start your.service
sudo systemctl enable your.service

После монтирования systemd запускает ваш триггерный скрипт. Преимущество перед правилом udev заключается в том, что скрипт действительно запускается после монтирования, а не после добавления системного устройства.

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

Создайте новый файл правил udev в /etc/udev/rules.d/ via sudoedit /etc/udev/rules.d/100-mount-videos.rules и добавьте туда новое правило следующим образом:

Дополнение от Аллана: Долгосрочные сценарии могут блокировать «все дальнейшие события для этого или зависимого устройства». Моя страница руководства Mint также утверждает: «Долгосрочные задачи должны быть немедленно отсоединены от самого процесса события». Нет подсказок о том, где можно приобрести навык для этого.

Ответ от Оли: Оберните это так: https://askubuntu.com/a/106359/449

Другой способ получить значения для ATTRS и ATTRS (протестировано в Ubuntu 12.04):

Найдите, где установлен ваш usb:

это показывает что-то вроде следующего:

Используйте udevadm, чтобы получить информацию об этом устройстве:

вывод должен быть что-то вроде:

Теперь используйте идентификатор модели для ATTRS и идентификатор поставщика для ATTRS

В Nautilus под Edit> Preferences> Media вы можете выбрать «другое действие», а не «costum command». для различных видов носителей, которые будут выполнены. К тому времени USB-накопитель уже смонтирован, но я полагаю, что вы все равно можете связать его (с помощью команды costum) с папкой, в которой вы хотите, чтобы накопитель появился. Я не мог сказать, проще ли это или лучше, чем использовать udev.

Если вы не хотите вмешиваться в контроль вашего файлового менеджера (nautilus, konquerer, gnome и т. Д.) За монтированием и размонтированием вашего устройства, я советую не идти по пути udev.

Вместо этого используйте udisks-glue, если ваша система использует udisks (почти все так делают).

После установки просто создайте файл конфигурации

/.udisks-glue.conf в вашем домашнем каталоге, как это.

Мой следующий пример обновляет данные GPS-Assist на моей камере каждый раз, когда я подключаю SD-карту.

После этого убедитесь, что udisks-glue запускается при загрузке или входе в систему. Т.е. через приложения запуска gnome

Источник

Использование правил udev для запуска скрипта при вставке USB

Я пытаюсь настроить скрипт для запуска при каждом подключении USB-устройства. Я создал файл /etc/udev/rules.d/90-local.rules и добавил следующее правило:

Проблема в том, что когда диск подключен, ничего не происходит. Сценарий, для целей отладки, настроен на отправку уведомления с уведомлением-отправкой, которое установлено и отлично работает с терминала.

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

У меня такая же проблема. Это сработало для меня:

Кроме того, я не знаю, что такое SYSFS, но я бы предпочел использовать свойства ATTR.

notify-send требует доступа к вашей сеансовой шине DBus, которая не может быть по двум причинам:

Нет информации о сеансе. Когда скрипт запускается udev, он ничего не знает о том, где вы вошли в систему или вообще вошли в нее. Многопользовательское с X11 все еще сложно, но переключение пользователей работает как для X11, так и для консольных сессий. Многие люди также используют SSH, VNC и NX по сети.

Запрещено политикой DBus. Даже если ваш сценарий каким-то образом обнаружит ваш сеанс X11, он не сможет отправлять уведомления из-за запуска сценария root вместо вашей учетной записи пользователя.

Вместо этого вы можете попытаться сопоставить устройство по идентификатору производителя и продукта. Следующее пользовательское правило работает для меня:

Вы можете увидеть idVendor и idProduct в выводе lsusb или dmesg после подключения устройства.

Правило теперь тоже короче.

Возможно, вам может понадобиться добавить sleep внутри скрипта, чтобы дать USB-устройству возможность «успокоиться»? Например, модемы usb 3g, переключение режимов для получения / dev / ttyUSB для запуска и запуска ядром.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *