Сценарий оболочки не запускается, когда я подключаю USB

Вы можете сделать так, как показано, чтобы получить результаты:

find loanwolf/. -type f -name '*.html' -exec grep -lHZ loanwolf_tags {} + |
xargs -r -0 grep -lH new_word

Здесь мы просматриваем обычные файлы с расширением html, скармливаем кучу из них grep и ищем в них строку тегов Loanwolf _. Опция -lбудет отображать имена файлов, в которых такая строка найдена и передана вперед в xargsпосле добавления к именам файлов нуля \0.

xargsполучит эти имена файлов и разделит их на нулевой символ, тем самым восстановив все типы имен файлов. Затем xargs будет собирать эти имена файлов и передавать их в grep, искать новое слово _и отображать совпадающие имена файлов -.

0
28.09.2019, 17:07
2 ответа

Ваш скрипт должен быть исполняемым.

Сделайте это шаг за шагом, чтобы выяснить вашу проблему:

Сначала создайте простой скрипт:

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

udev -для -устройство -обнаружение -управление -в -linux

2
28.01.2020, 02:29

Запустите udevadm monitorи подключите USB-устройство. Он покажет вам, что именно делает udev.

1
28.01.2020, 02:29

Теги

Похожие вопросы