Jak uzyskać powiadomienie e-mail po włożeniu urządzenia pamięci USB?

27

W naszej firmie prowadzimy ponad 600 systemów Ubuntu. Jest to centrum danych, więc mamy pewne zasady. Wyłączyliśmy korzystanie z urządzeń pamięci we wszystkich systemach Ubuntu. Jednak chcielibyśmy skonfigurować powiadomienia e-mail. Jeśli ktoś wstawi urządzenia pamięci masowej, powinniśmy otrzymać alert e-mail z tematem jak poniżej,

Powiadomienie e-mail:

STORAGE DEVICE FOUND on IP: 172.29.35.18

Uwaga:

  • Jeśli chodzi o system Windows, mamy pewne zasady zastosowane w naszym DC. Więc nie ma problemu z systemem Windows.
  • Musimy także otrzymywać powiadomienia o systemie Ubuntu. Każdy sposób na wykonanie powyższego zadania byłby świetny.

Aktualizacja:

  • Kilka rzeczy, które chciałbym wyjaśnić, jeśli użytkownik odłączy kabel sieciowy i jeśli użytkownik używa usb do przesyłania danych? Wiem, że nie otrzymam żadnych informacji, ale jeśli później połączą się z siecią, czy możliwe jest otrzymanie tych oczekujących powiadomień?
  • Niektóre używają USB do ładowania swoich telefonów komórkowych, czy możliwe jest otrzymywanie powiadomień e-mail?
karthick87
źródło
Myślę, że powinieneś zobaczyć ten post na stronie superuser: superuser.com/questions/305723/... Ben
Ben

Odpowiedzi:

25

Aby to zrobić, należy zastosować regułę udev, która będzie obowiązywać dla wszystkich urządzeń pamięci USB dowolnego producenta. W przypadku części e-mail należy pamiętać, że Ubuntu Desktop NIE zawiera żadnego klienta poczty e-mail z wiersza polecenia, więc jeśli nie chcesz go instalować, skrypt powiadomień powinien komunikować się bezpośrednio za pomocą surowych poleceń SMTP z lokalnym serwerem poczty.

ish
źródło
To jest ode mnie świetna +1: D
karthick87
Świetna odpowiedź i dała wszystkie potrzeby wyjściowe, zarówno e-mail, jak i ip
LnxSlck
@izx prosi o zapoznanie się z moim pytaniem o aktualizację.
karthick87
Być może skrypt /etc/udev/rules.d/usbnotif.sh powinien być przechowywany w innym miejscu, aby uniknąć pomyłek z plikami reguł. Chociaż technicznie może tam pozostać.
elomage
@ karthick87: dzięki, przyjrzę się aktualizacji telefonu / sieci za kilka godzin. Powiadomienie telefoniczne nie powinno stanowić problemu, ale opóźnienie powiadomienia sieciowego może wymagać posiadania odpowiedniego serwera / klienta SMTP na każdym komputerze, który może kolejkować pocztę do momentu dostarczenia. Ale zobaczę, co da się zrobić :)
is
18

Możesz użyć Mątwy ( https://apps.ubuntu.com/cat/applications/cuttlefish/ )!

Mątwy to program, który może wykonywać działania w przypadku wystąpienia zdarzeń. Na przykład możesz uruchomić polecenie, gdy USB jest podłączony: wprowadź opis zdjęcia tutaj

Jak pracować z Mątwy:

  1. Stwórz nowy Refleks z lewego górnego rogu: wprowadź opis zdjęcia tutaj
  2. Podaj nazwę swoich preferencji, włącz Activated by stimulusi kliknij None, aby wybrać bodziec: wprowadź opis zdjęcia tutaj
  3. Kliknij po lewej Hardwarei po prawej stronie USB device plugged in. Następnie kliknij OK. wprowadź opis zdjęcia tutaj
  4. Kliknij kartę reakcji i znak plus w lewym dolnym rogu: wprowadź opis zdjęcia tutaj
  5. Przejdź do Aplikacje-> Uruchom aplikację (tryb zaawansowany). Następnie kliknij OK. wprowadź opis zdjęcia tutaj
  6. Teraz, po prawej stronie, możesz zobaczyć, że możesz wybrać plik wykonywalny do uruchomienia z dowolnymi parametrami, więc musisz pozwolić Cuttlefish na tacę systemową i będzie on uruchamiał twoje polecenie za każdym razem, gdy urządzenie USB zostanie podłączone: wprowadź opis zdjęcia tutaj

Zakładam, że znasz polecenie, którego możesz użyć do wysłania wiadomości e-mail. Jeśli nie, proszę zamieścić go jako komentarz, aby uwzględnić go w mojej odpowiedzi.

hytromo
źródło
Czy chcesz, żebym zainstalował mątwę i skonfigurował ją we wszystkich 600 systemach Ubuntu? To jest duże i trudne zadanie ..
karthick87
7
Po skonfigurowaniu mątwy w jednym z systemów możesz łatwo sklonować ~/.cuttlefish. Również jeśli zaznaczysz autostart przy ustawianiu logowania do mątwy (możesz to znaleźć w ustawieniach), możesz skonfigurować autostart na każdej maszynie poprzez klonowanie ~/.config/autostart/cuttlefish.desktop.
Alex
@ karthick87, co powiedział Alex. O ile wiem, domyślnie nie można nic zrobić. Tak więc powinieneś coś zrobić na wszystkich 600 systemach ...
hytromo
Czy to oznacza, że ​​w końcu uważasz, że jest to wystarczająco wygodne?
hytromo
3

Zgodnie z tą odpowiedzią dodaj ten kod do/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"

i w usb.shpliku dodaj ten kod

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

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

źródło


Teraz spróbuję go zautomatyzować, abyś mógł dodać tę regułę / skrypt w 600 systemach Ubuntu.

    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

Ten skrypt nie jest testowany , a proces automatyzacji zostanie ulepszony.
Jak tylko skonfiguruję kilka testowych komputerów.

blade19899
źródło
To wydaje się być dla mnie dobrym +1, przetestuj go i daj mi znać status roboczy. Tak, że mogę zastosować go we wszystkich systemach Ubuntu ..
karthick87
Czy wykryje to urządzenia USB inne niż wyprodukowane przez „SanDisk”?
Takkat
4
Nie, będzie to działać tylko w przypadku urządzeń firmy Sandisk. Ponadto muttnie jest instalowany domyślnie na Ubuntu Desktop i ifconfig | grep ipdaje zerowy wynik.
ish
1

Będziesz mógł zobaczyć każde nowe urządzenie USB, które nie tylko pobiera moc serwera (które zwykle obejmuje telefony)

Dla części USB: Jak mogę nasłuchiwać zdarzeń „włożonych urządzeń USB” w Linuksie, w Pythonie?

Wysyłanie wiadomości e-mail w języku python: e-mail - Python - Jak wysłać wiadomość e-mail utf-8?

W przypadku sieci Ethernet użyj netplugd i użyj instrukcji góra lub dół:
Ubuntu Manpage: netplugd - demon zarządzania hotplug kabla sieciowego

Antoine Rodriguez
źródło