GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie löst man ein Ereignis im Shell-Skript aus, wenn ein USB-Gerät entfernt wird?

Ich muss einige Aktionen ausführen, wenn ein bestimmtes USB-Gerät entfernt/hinzugefügt wird. Ich brauche eine schnelle Antwort in der Größenordnung von Millisekunden.

Wie kann ich das in einem Shell-Skript machen?

Akzeptierte Antwort:

Angenommen, Sie verwenden eine Linux-Distribution mit udev-Unterstützung und haben Root-/Administratorzugriff darauf, dann können Sie udev-Regeln verwenden, um bestimmte Vorgänge auszulösen.

Wenn das folgende Beispiel zu einer /etc/udev/rules.d/example.rules hinzugefügt wird dann wird das angegebene Skript ausgeführt, wenn ein Blockgerät mit den angegebenen Parametern hinzugefügt wird.

ACTION=="add", SUBSYSTEM=="block", ATTRS{manufacturer}=="HitachiGST", ATTRS{serial}=="31001206110000000000", RUN+="/a/script/to/run.sh"

Diese spezielle Regel wird ausgeführt, wenn meine USB-Festplatte eingesteckt und an das Blocksystem angeschlossen wird. Es ist ganz einfach, die Regeln so anzupassen, dass sie mit einem bestimmten Low-Level-USB-Ereignis übereinstimmen.

Ich fand die Debian-UDEV-Wiki-Seite und die Seite Writing Udev Rules sehr hilfreich, um die richtigen Regeln für meine Situation zu finden.


Linux
  1. Wie behandelt man Schalter in einem Shell-Skript?

  2. Wie erstelle ich eine temporäre Datei im Shell-Skript?

  3. Wie führe ich ein Skript in der Shell aus, wenn eine Tastenkombination gedrückt wird?

  4. So konfigurieren Sie den Eigentümer/die Gruppe von Gerätedateien mit udev-Regeln

  5. Deaktivieren Sie die MTP-udev-Regeln für ein bestimmtes Gerät, damit es als USB-Massenspeichergerät gemountet werden kann

So verwenden Sie Variablen in Shell-Skripten

So erstellen Sie Shell-Skripte

So speichern Sie einen Linux-Befehl als Variable im Shell-Skript

So führen Sie Shell-Skript als SystemD-Dienst in Linux aus

Wie zeigt man eine Benachrichtigung an, wenn ein USB-Gerät eingesteckt wird?

Wie führe ich einen Befehl in einem Shell-Skript aus?