Wie erhalte ich eine E-Mail-Benachrichtigung, wenn ein USB-Speichergerät angeschlossen ist?

27

Wir betreiben mehr als 600 Ubuntu-Systeme in unserem Unternehmen. Da es sich um ein Rechenzentrum handelt, haben wir bestimmte Richtlinien. Wir haben die Verwendung von Speichergeräten in allen Ubuntu-Systemen deaktiviert. Wir möchten jedoch E-Mail-Benachrichtigungen konfigurieren. Wenn jemand Speichergeräte einfügt, sollten wir eine E-Mail-Benachrichtigung mit dem unten angegebenen Betreff erhalten.

Email Alarm:

STORAGE DEVICE FOUND on IP: 172.29.35.18

Hinweis:

  • Wo für Windows-System, haben wir bestimmte Richtlinien in unserem DC angewendet. Es gibt also kein Problem mit dem Windows-System.
  • Wir müssen auch Warnungen für das Ubuntu-System erhalten. Jeder Weg, um die oben genannte Aufgabe zu erfüllen, wäre großartig.

Aktualisieren:

  • Einige Dinge, die ich klären möchte: Wenn der Benutzer das Netzwerkkabel abtrennt und wenn der Benutzer USB für die Datenübertragung verwendet? Ich weiß, dass ich keine Hinweise bekomme, aber später, wenn sie das Netzwerk verbinden, ist es möglich, diese ausstehenden Benachrichtigungen zu erhalten?
  • Einige benutzen USB zum Aufladen ihres Handys. Ist es möglich, auch E-Mail-Benachrichtigungen zu erhalten?
karthick87
quelle
Ich denke, Sie sollten diesen Beitrag auf superuser sehen: superuser.com/questions/305723/… Ben
Ben

Antworten:

25

Verwenden Sie dazu eine udev- Regel, die für alle USB-Speichergeräte aller Hersteller gilt. Beachten Sie für den E-Mail-Teil, dass Ubuntu Desktop KEINEN Befehlszeilen-E-Mail-Client enthält. Wenn Sie also keinen installieren möchten, sollte das Benachrichtigungsskript direkt über unformatierte SMTP-Befehle mit Ihrem lokalen Mail-Server kommunizieren.

ish
quelle
Das ist großartig +1 von mir: D
karthick87
Tolle Antwort, und es gab alles, was die Ausgabe benötigt, sowohl E-Mail als auch IP
LnxSlck
@izx bitte um einen Blick auf meine Frage für ein Update ..
karthick87
Möglicherweise sollte das Skript /etc/udev/rules.d/usbnotif.sh an einer anderen Stelle gespeichert werden, um Verwechslungen mit den Regeldateien zu vermeiden. Obwohl technisch kann es dort bleiben.
elomage
@ karthick87: danke, ich schaue mir in ein paar stunden das telefon / netzwerk update an. Die telefonische Benachrichtigung sollte kein Problem sein, aber für die Verzögerung der Netzwerkbenachrichtigung muss möglicherweise auf jedem Computer ein ordnungsgemäßer SMTP-Server / -Client vorhanden sein, auf dem E-Mails in die Warteschlange gestellt werden können, bis sie zugestellt werden. Aber ich werde sehen, was ich tun kann :)
ish
18

Sie können Tintenfisch ( https://apps.ubuntu.com/cat/applications/cuttlefish/ ) verwenden!

Tintenfisch ist ein Programm, das Aktionen ausführen kann, wenn Ereignisse eintreten. Sie können beispielsweise einen Befehl ausführen, wenn ein USB-Gerät angeschlossen ist: Bildbeschreibung hier eingeben

So arbeiten Sie mit Tintenfischen:

  1. Machen Sie einen neuen Reflex von der oberen linken Ecke: Bildbeschreibung hier eingeben
  2. Geben Sie den gewünschten Namen ein, aktivieren Sie ihn Activated by stimulusund klicken Sie auf None, um einen Stimulus auszuwählen: Bildbeschreibung hier eingeben
  3. Klicken Sie links Hardwareund rechts USB device plugged in. Klicken Sie dann auf OK. Bildbeschreibung hier eingeben
  4. Klicken Sie auf die Registerkarte Reaktion und dann auf das Pluszeichen unten links: Bildbeschreibung hier eingeben
  5. Gehen Sie zu Anwendungen-> Anwendung starten (erweiterter Modus). Klicken Sie dann auf OK. Bildbeschreibung hier eingeben
  6. Auf der rechten Seite sehen Sie nun, dass Sie eine ausführbare Datei auswählen können, die mit beliebigen Parametern ausgeführt werden soll. Daher müssen Sie Cuttlefish in der Taskleiste ausführen lassen, und der Befehl wird jedes Mal ausgeführt, wenn ein USB-Gerät angeschlossen wird: Bildbeschreibung hier eingeben

Ich gehe davon aus, dass Sie einen Befehl kennen, mit dem Sie Ihre E-Mail versenden können. Wenn nicht, posten Sie es bitte als Kommentar, um es in meine Antwort aufzunehmen.

hytromo
quelle
Soll ich Tintenfisch installieren und in allen 600 Ubuntu-Systemen konfigurieren? Dann ist es eine große und schwierige Aufgabe ..
karthick87
7
Nachdem Sie Tintenfische auf einem der Systeme konfiguriert haben, können Sie problemlos klonen ~/.cuttlefish. Wenn Sie bei der Login-Einstellung von Tintenfisch den Autostart ankreuzen (Sie finden ihn in den Einstellungen), können Sie den Autostart auf jedem Rechner durch Klonen einrichten ~/.config/autostart/cuttlefish.desktop.
Alex
@ karthick87, was Alex gesagt hat. Soweit ich weiß, können Sie standardmäßig nichts tun. Also, Sie sollten sowieso etwas auf allen 600 Systemen tun ...
hytromo
Heißt das, Sie finden es am Ende doch bequem genug?
Hytromo
3

Fügen Sie gemäß dieser Antwort diesen Code zu hinzu/etc/udev/rules.d/90-local.rules

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", ATTRS{vendor}=="SanDisk ", RUN+="/usr/local/bin/usb.sh"

Fügen Sie in der usb.shDatei diesen Code hinzu

#!/bin/bash
ifconfig | grep ip >>/tmp/usb.log

echo “USB inserted.” | mutt -a /tmp/usb.log -s “attachment” [email protected]

Quelle


Jetzt werde ich versuchen, es zu automatisieren, damit Sie diese Regel / Skript in 600 Ubuntu-Systemen hinzufügen können.

    sudo echo " ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", ATTRS{vendor}=="SanDisk ", RUN+="/usr/local/bin/usb.sh" ">>/etc/udev/rules.d/90-local.rules

 #then the `usb.sh`

    sudo echo "     #!/bin/bash
        ifconfig | grep ip >>/tmp/usb.log

        echo “USB inserted.” | mutt -a /tmp/usb.log -s “attachment” [email protected] " >>/usr/local/bin/usb.sh

Dieses Skript wird nicht getestet und der Automatisierungsprozess wird verbessert.
Sobald ich einige Test-PCs eingerichtet habe.

blade19899
quelle
Dies scheint gut +1 von mir zu sein, bitte testen Sie es und lassen Sie mich den Arbeitsstatus wissen. Damit ich es in allen Ubuntu-Systemen anwenden kann ..
karthick87
Erkennt dies andere USB-Geräte als die von "SanDisk"?
Takkat
4
Nein, dies funktioniert nur für Geräte von Sandisk. Außerdem muttist es nicht standardmäßig auf Ubuntu Desktop installiert und ifconfig | grep ipgibt eine Null-Ausgabe aus.
ish
1

Sie können jedes neue USB-Gerät sehen, das nicht nur die Leistung des Servers nutzt (normalerweise werden die Telefone mitgeliefert).

Zum USB-Teil: Wie kann ich in Python unter Linux auf Ereignisse warten, bei denen ein USB-Gerät eingesteckt ist?

Senden einer E-Mail in Python: E-Mail - Python - Wie versende ich Utf-8-E-Mails?

Verwenden Sie für das Ethernet netplugd und die Anweisungen up oder down:
Ubuntu Manpage: netplugd - Netzwerkkabel-Hotplug-Management-Daemon

Antoine Rodriguez
quelle