ฉันต้องการรันสคริปต์เมื่อฉันเสียบอุปกรณ์ในเครื่อง Linux ของฉัน ตัวอย่างเช่นรันxinput
บนเมาส์หรือ backupscript บนไดรฟ์บางตัว
ฉันได้เห็นบทความจำนวนมากเกี่ยวกับเรื่องนี้ส่วนใหญ่เมื่อเร็ว ๆ นี้ที่นี่และที่นี่ แต่ฉันไม่สามารถทำงานได้
ต่อไปนี้เป็นตัวอย่างง่ายๆที่พยายามรับการตอบกลับอย่างน้อย
/etc/udev/rules.d/test.rules
#KERNEL=="sd*", ATTRS{vendor}=="*", ATTRS{model}=="*", ATTRS{serial}=="*", RUN+="/usr/local/bin/test.sh"
#KERNEL=="sd*", ACTION=="add", "SUBSYSTEM=="usb", ATTRS{model}=="My Book 1140 ", ATTRS{serial}=="0841752394756103457194857249", RUN+="/usr/local/bin/test.sh"
#ACTION=="add", "SUBSYSTEM=="usb", RUN+="/usr/local/bin/test.sh"
#KERNEL=="sd*", ACTION=={add}, RUN+="/usr/local/bin/test.sh"
KERNEL=="sd*", RUN+="/usr/local/bin/test.sh"
KERNEL=="*", RUN+="/usr/local/bin/test.sh"
/usr/local/bin/test.sh
#!/usr/bin/env bash
echo touched >> /var/log/test.log
if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ]
then
echo ${DEVICE} >> /var/log/test.log
fi
ดูกฎของโฟลเดอร์inotify
และควรจะใช้งานได้ทันที ฉันจะทำการแทนที่คีย์บอร์ดเม้าส์แท็บเล็ตเมมโมรี่สติ๊กและไดรฟ์ usb แต่ก็ไม่มีอะไร ไม่มีไฟล์บันทึกสัมผัส
ตอนนี้อะไรจะเป็นวิธีที่ง่ายที่สุดที่จะรู้ว่ามีบางอย่างกำลังทำงานอยู่? มันง่ายกว่าที่จะทำงานจากบางสิ่งที่ทำงานได้ดีกว่าจากสิ่งที่ไม่ทำงาน
3.5.0-23-generic
อยู่
udevadm trigger
หรือเสียบอุปกรณ์เพื่อใช้กฎใหม่หรือไม่