Neue USB-Geräte mit Bash erkennen?

927
tjt263

Ich bin ein Bash - Skript zu schreiben, wenn das Gerät ein USB - Speicher erkennen, muss zunächst eingesetzt wird, und weisen Sie auf eine Variable, die sonst würde, in der Regel etwas wie folgt aussehen: usb=/dev/sdb.

Ich habe ein paar abstrakte Ideen, die die Verwendung watcheines bestimmten if/ whileSchleifenkonstrukts und möglicherweise lsblk -o kname/ beinhalten lsblk -o pkname. bin aber noch nicht voll geeignet etwas zu realisieren.

Wie könnte ich das am besten umsetzen?

1

1 Antwort auf die Frage

1
varlogtim

Sie können ein Skript mit starten UDEV. "udev behandelt auch alle Ereignisse im Benutzerbereich, die ausgelöst werden, während Hardwaregeräte dem System hinzugefügt oder daraus entfernt werden" (Von http://wiki.archlinux.org/index.php/Udev )

In einer Datei mit dem Namen: /etc/udev/rules.d/10-usb.rulesfügen Sie Folgendes hinzu:

KERNEL=="sd*[!0-9]|sr*", ENV!="?*", SUBSYSTEMS=="usb", RUN+="/path/to/script.sh" 

Hinweis: Je nach Ihrer Distribution müssen Sie möglicherweise den Speicherort der Datei leicht anpassen. Hinweis: Möglicherweise müssen Sie einen Neustart durchführen, bevor die Regel wirksam wird.