Як отримати сповіщення електронною поштою, коли вставлено USB-накопичувач?


27

У нашій компанії працює понад 600 систем Ubuntu. Це центр обробки даних, тому ми маємо певну політику. Ми відключили використання пристроїв зберігання даних у всіх системах Ubuntu. Однак ми хотіли б налаштувати сповіщення електронною поштою. Якщо хтось вставить пристрої зберігання даних, нам слід отримати сповіщення електронною поштою з темою, як показано нижче,

Сповіщення електронної пошти:

STORAGE DEVICE FOUND on IP: 172.29.35.18

Примітка:

  • Що стосується системи Windows, то в нашому постійному доступі ми застосовуємо певні політики. Так що проблем із системою Windows немає.
  • Нам також потрібно отримувати сповіщення для системи Ubuntu. Будь-який спосіб виконати вищезазначене завдання було б чудово.

Оновлення:

  • Кілька речей, які я хотів би уточнити, якщо користувач відключає мережевий кабель і якщо користувач використовує usb для передачі даних? Я знаю, що я не буду отримувати будь-які сповіщення, але пізніше, якщо вони підключать мережу, чи можна отримати ці очікувані сповіщення ??
  • Деякі користуються usb для зарядки своїх мобільних телефонів, чи можливо отримувати сповіщення електронною поштою для цього також ??

Думаю, вам слід перейти до цієї публікації на superuser: superuser.com/questions/305723/… Бен
Бен

Відповіді:


25

Спосіб для цього - використовувати правило udev, яке застосовуватиметься до всіх пристроїв зберігання даних USB від будь-якого виробника. Щодо частини електронної пошти, зауважте, що Ubuntu Desktop НЕ включає жодного клієнтського клієнтського рядка, тому, якщо ви не бажаєте встановити його, сценарій сповіщення повинен зв’язуватися безпосередньо через необроблені команди SMTP на ваш локальний поштовий сервер.


Це Великий +1 від мене: D
karthick87

Чудова відповідь, і вона дала всі необхідні вихідні дані, як електронну пошту, так і ip
LnxSlck,

@izx прошу вас переглянути моє запитання щодо оновлення ..
karthick87

Можливо, сценарій /etc/udev/rules.d/usbnotif.sh повинен зберігатися десь в іншому місці, щоб уникнути плутанини з файлами правил. Хоча технічно це може залишитися там.
elomage

@ karthick87: дякую, я перегляну оновлення телефону / мережі через кілька годин. Повідомлення по телефону не повинно бути проблемою, але затримка повідомлень про мережу може зажадати наявності відповідного SMTP-сервера / клієнта на кожному апараті, який може чекати поштою до доставки. Але я побачу, що я можу зробити :)
ош

18

Ви можете використовувати каракатицю ( https://apps.ubuntu.com/cat/applications/cuttlefish/ )!

Каракатиця - програма, яка може виконувати дії, коли відбуваються події. Наприклад, ви можете запустити команду, коли підключений USB: введіть тут опис зображення

Як працювати з каракатицями:

  1. Зробіть новий рефлекс у верхньому лівому куті: введіть тут опис зображення
  2. Укажіть ім’я за своїм уподобанням, увімкніть його Activated by stimulusта натисніть None, щоб вибрати стимул: введіть тут опис зображення
  3. Клацніть ліворуч Hardwareі праворуч USB device plugged in. Потім натисніть кнопку ОК. введіть тут опис зображення
  4. Перейдіть на вкладку реакції та натисніть знак плюс внизу ліворуч: введіть тут опис зображення
  5. Перейдіть у розділ Програми-> Запустити програму (розширений режим). Потім натисніть кнопку ОК. введіть тут опис зображення
  6. Тепер праворуч ви бачите, що ви можете вибрати виконуваний файл для виконання з будь-якими бажаними параметрами, тому вам потрібно дозволити каракатиці працювати на системному треї, і вона буде виконувати вашу команду щоразу, коли підключається USB-пристрій: введіть тут опис зображення

Я припускаю, що ви знаєте команду, яку можете використовувати для надсилання електронного листа. Якщо ні, будь ласка, опублікуйте це як коментар, щоб включити його у свою відповідь.


Ви хочете, щоб я встановив каракатицю та налаштував її у всіх 600 системах ubuntu? Тоді це велике і важке завдання ..
karthick87

7
Після налаштування каракатиці на одній із систем, ви можете легко клонуватись ~/.cuttlefish. Крім того, якщо ви поставите галочку під час автозапуску при налаштуванні входу каракатиці (ви можете знайти її в налаштуваннях), ви можете встановити автозапуск на кожній машині шляхом клонування ~/.config/autostart/cuttlefish.desktop.
Алекс

@ karthick87, що сказав Алекс. Наскільки я знаю, ти не можеш зробити щось за замовчуванням. Отже, вам все одно слід зробити щось на всіх 600 системах ...
hytromo

Чи означає це, що врешті-решт, ви знайдете цей спосіб досить комфортним?
hytromo

3

Відповідно до цієї відповіді , додайте цей код до/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"

і у usb.shфайл додайте цей код

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

echo “USB inserted.” | mutt -a /tmp/usb.log -s “attachment” example@hotmail.com

джерело


Тепер я спробую автоматизувати його, щоб ви могли додати це правило / сценарій у 600 системах 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” example@hotmail.com " >>/usr/local/bin/usb.sh

Цей скрипт не перевіряється , і процес автоматизації буде вдосконалено.
Як тільки я встановив кілька тестових ПК.


Це, здається, добре від мене, будь ласка, протестуйте його та повідомте мені працездатність. Щоб я міг застосувати його у всіх системах ubuntu ..
karthick87

Чи виявить це USB-пристрої, відмінні від "SanDisk"?
Таккат

4
Ні, це буде працювати лише для пристроїв, виготовлених Sandisk. Крім того, muttне встановлено за замовчуванням на Ubuntu Desktop, і ifconfig | grep ipдає нульовий вихід.
Останній

1

Ви зможете побачити будь-який новий пристрій usb, який не лише захоплює потужність сервера (відьма зазвичай включає телефони)

Щодо частини USB: Як я можу прослуховувати події "вставленого пристрою usb" у Linux, у Python?

Надсилання електронного листа в python: електронна пошта - Python - Як надіслати електронну пошту utf-8?

Для Ethernet використовуйте netplugd та використовуйте оператори вгору або вниз:
Ubuntu Manpage: netplugd - мережевий кабель управління гарячою модулем

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.