/usr/local/bin/USBTesting.sh
특정 USB 장치를 연결할 때 "간단한"작업을 수행하고 스크립트를 실행하려고합니다 . /lib/udev/rules.d/99-USBTesting.rules /etc/udev/rules.d/10-USBTesting.rules
어디에 두어야할지 확실하지 않기 때문에 만들었 습니다. 이 파일의 내용에 대해 다음을 하나씩 사용했습니다.
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="18a5", ATTRS{idProduct}=="0304", RUN+="/usr/local/bin/USBTesting.sh"
ACTION==“add”, SUBSYSTEM==“usb_device”, SYSFS{idVendor}==“18a5”, SYSFS{idProduct}==“0304”, RUN+=“/usr/local/bin/USBTesting.sh”
ACTION=="add", KERNEL=="sd[a-z]*", RUN+=“/usr/local/bin/USBTesting.sh”
SYSFS{idVendor}==“18a5”, SYSFS{idProduct}==“0304”, RUN+=“/usr/local/bin/USBTesting.sh”
ACTION==“add”, SUBSYSTEM==“usb_device”, RUN+=“/usr/local/bin/USBTesting.sh”
ACTION==“add”, KERNEL=="sd*[!0-9]", RUN+=“/usr/local/bin/USBTesting.sh”
ATTRS{model}=="STORE N GO ", ATTRS{vendor}=="Verbatim", RUN+=“/usr/local/bin/USBTesting.sh”
SUBSYSTEM=="usb", ATTRS{idVendor}=="18a5", ATTRS{idProduct}=="0304", RUN+="/usr/local/bin/USBTesting.sh"
KERNEL=="*", RUN+=“/usr/local/bin/USBTesting.sh”
그리고 물론 악명 높은 것을 발표 sudo udevadm control --reload-rules
하고 심지어 "만약을 위해"내 노트북을 몇 번 다시 시작했습니다.
내용 /usr/local/bin/USBTesting.sh
:
#!/bin/sh -e
set -u
echo $(date) Started >> /tmp/USBTesting.txt
echo $(date) Started >> /home/elemer/USBTesting.txt
복잡한 것은 없으며 지금 당장 테스트 만하면됩니다. sudo chmod +x /usr/local/bin/USBTesting.sh
적용되었습니다. 내가 그것을 실행 /usr/local/bin/USBTesting.sh
하면 그것이해야 할 일을합니다.
나는 정말로 아이디어가 부족합니다. 아무도 우분투 14.04.1 LTS에서 비슷한 작업을 수행 했습니까? 올바른 해결책을 듣고 싶습니다.
편집 :
RUN+=“/usr/local/bin/USBTesting.sh”
이것은 내 udev 규칙에 있었으며 RUN+="/usr/local/bin/USBTesting.sh"
이것이 맞습니다. 훈련되지 않은 눈 (내 것과 같은)은 차이를 발견하지 못합니다. “
그리고 "
다릅니다. 그리고 그것은 차이를 만드는 것처럼 보입니다.
내 새로운 udev 규칙은 다음과 같습니다.
SUBSYSTEM=="usb", ATTRS{serial}=="f88331611c905b", RUN+="/usr/local/bin/USBTesting.sh"
또는
SUBSYSTEM=="usb", ATTRS{idVendor}=="18a5", ATTRS{serial}=="f88331611c905b", ATTRS{manufacturer}=="Verbatim", ATTRS{idProduct}=="0304", RUN+="/usr/local/bin/USBTesting.sh"
-이 정보를 입수했습니다 udevadm info -a -n sdc
- sdc
귀하의 정보 로 변경해야 할 수도 있습니다 .
이제 내 스크립트가 모든 플러그인에 대해 두 번 실행됩니다.
편집 2 : ENV{DEVTYPE}=="usb_device"
규칙 에 추가해야한다는 것이 밝혀졌으며 이제는 한 번만 실행됩니다. 이것이 나의 규칙이 지금 보이는 모습입니다.
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="18a5", ATTRS{serial}=="f88331611c905b", ATTRS{manufacturer}=="Verbatim", ATTRS{idProduct}=="0304", RUN+="/usr/local/bin/USBTesting"