ich habe eine ähnliche Frage wie hier: http://debianforum.de/forum/viewtopic.php?f=34&t=135180
Nur sind meine Anforderungen etwas anders:
1) Wenn ein USB-Stick eingesteckt wird, soll ein Script aufgerufen werden das USB VendorId, ProductId, sowie Manufacturer, Product und Serial als Parameter mitbekommt.
2) Wenn ein USB-Stick abgezogen wird, soll ein zweites Script, aber mit gleichen Parametern wie das erste aufgerufen werden
3) Vom Einstecken/Abziehen bis zum Aufruf des Scripts sollte es nicht länger als 1,5sek dauern.
Ich hab schon etwas gebastelt und bin nun hier angelangt:
Ich habe eine UDEV Regel eingerichtet die wie folgt aussieht:
Code: Alles auswählen
ACTION=="add", SUBSYSTEMS=="usb", DRIVERS=="usb", RUN+="/etc/udev/scripts/test.sh '$attr{idVendor}' '$attr{idProduct}' '$attr{manufacturer}' '$attr{product}' '$attr{serial}'"
Code: Alles auswählen
#!/bin/bash
(
flock -e 200
TIMESTAMP=`date`
echo "$TIMESTAMP --- VendorId: [$1] ProductId: [$2] Manufacturer: [$3] Product: [$4] Serial: [$5]" >> /tmp/usb-found
) 200>/tmp/usb-busy.lockfile
flock -u /tmp/usb-busy.lockfile
Die ersten 4 Zeilen kommen quasi sofort beim einstecken. Passt also. Nur wäre eine einzige Zeile ausreichend. Die restlichen Zeilen stören. Ich tippe mal darauf dass ich meine UDEV Regel weiter eingrenzen muss. Aber mir gehen die Ideen aus. Ich will ind er UDEV Regel mich nicht auf ein spezielles Device festlegen. Ich will einfach von jedem eingesteckten USB-Speicherstick die oben genannten Parameter haben (soweit vorhanden). Und das beim einstecken und auch abziehen.Fri Mar 23 11:21:42 CET 2012 --- VendorId: [0718] ProductId: [063e] Manufacturer: [Imation] Product: [Nano Pro] Serial: [07B60D03F92D55C5]
Fri Mar 23 11:21:42 CET 2012 --- VendorId: [0718] ProductId: [063e] Manufacturer: [Imation] Product: [Nano Pro] Serial: [07B60D03F92D55C5]
Fri Mar 23 11:21:42 CET 2012 --- VendorId: [0718] ProductId: [063e] Manufacturer: [Imation] Product: [Nano Pro] Serial: [07B60D03F92D55C5]
Fri Mar 23 11:21:42 CET 2012 --- VendorId: [] ProductId: [] Manufacturer: [] Product: [] Serial: []
Fri Mar 23 11:21:47 CET 2012 --- VendorId: [0718] ProductId: [063e] Manufacturer: [Imation] Product: [Nano Pro] Serial: [07B60D03F92D55C5]
Fri Mar 23 11:21:47 CET 2012 --- VendorId: [0718] ProductId: [063e] Manufacturer: [Imation] Product: [Nano Pro] Serial: [07B60D03F92D55C5]
Fri Mar 23 11:21:47 CET 2012 --- VendorId: [0718] ProductId: [063e] Manufacturer: [Imation] Product: [Nano Pro] Serial: [07B60D03F92D55C5]
Fri Mar 23 11:21:47 CET 2012 --- VendorId: [0718] ProductId: [063e] Manufacturer: [Imation] Product: [Nano Pro] Serial: [07B60D03F92D55C5]
Fri Mar 23 11:21:47 CET 2012 --- VendorId: [] ProductId: [] Manufacturer: [] Product: [] Serial: []
Fri Mar 23 11:21:47 CET 2012 --- VendorId: [0718] ProductId: [063e] Manufacturer: [Imation] Product: [Nano Pro] Serial: [07B60D03F92D55C5]
Fri Mar 23 11:21:47 CET 2012 --- VendorId: [] ProductId: [] Manufacturer: [] Product: [] Serial: []
Fri Mar 23 11:21:47 CET 2012 --- VendorId: [] ProductId: [] Manufacturer: [] Product: [] Serial: []
Hintergrund:
Ich habe eine Anwendung die über USB-Sticks verschiedene Aktionen triggern soll. Dazu soll die Anwendung von außen über eingesteckte und abgezogene Sticks informiert werden. Die Anwendung entscheidet dann selbst welcher Stick beim einstecken und/oder abziehen welche Aktion auslöst.
Nun ergeben sich zwei Fragen:
1) Wie muss ich die UDEV Regel weiter einschränken ohne mich gleich auf einen Stick festzulegen?
2) Falls zu 1) keine Antwort bekannt ist. Mit "udevadm monitor" kann ich UDEV monitoren. Aber leider gibt's da keinen Output mit brauchbaren Informationen wie ich die UDEV Regel weiter einschränken kann. Gibt's eine Möglichkeit etwas detailierter zu monitoren? Evtl. mit einer UDEV Regel die alle Parameter und Attribute über ein run-Script loggt?!
Gruß
Alex