Làm cách nào để nhận thông báo qua email khi lắp thiết bị lưu trữ USB?


27

Chúng tôi đang chạy hơn 600 hệ thống Ubuntu trong công ty của chúng tôi. Đây là một trung tâm dữ liệu nên chúng tôi có những chính sách nhất định. Chúng tôi đã vô hiệu hóa việc sử dụng các thiết bị lưu trữ trong tất cả các hệ thống Ubuntu. Tuy nhiên, chúng tôi muốn cấu hình thông báo qua email. Nếu ai đó chèn thiết bị lưu trữ, chúng tôi sẽ nhận được Thông báo qua email với chủ đề như bên dưới,

Thông báo qua email:

STORAGE DEVICE FOUND on IP: 172.29.35.18

Chú thích:

  • Đối với hệ thống Windows, chúng tôi có các chính sách nhất định được áp dụng trong DC của chúng tôi. Vì vậy, không có vấn đề với hệ thống Windows.
  • Chúng tôi cũng cần nhận thông báo cho hệ thống Ubuntu. Bất kỳ cách nào để hoàn thành nhiệm vụ trên sẽ là tuyệt vời.

Cập nhật:

  • Vài điều tôi muốn làm rõ, Nếu người dùng ngắt kết nối cáp mạng và nếu người dùng sử dụng usb để truyền dữ liệu? Tôi biết rằng tôi sẽ không nhận được bất kỳ thông tin nào nhưng sau này nếu họ kết nối mạng thì có thể nhận được các thông báo đang chờ xử lý này không ??
  • Một số sử dụng usb để sạc điện thoại di động của họ, có thể nhận được thông báo qua email không?

Tôi nghĩ bạn nên đi xem bài đăng này trên superuser: superuser.com/questions/305723/ mẹo Ben
Ben

Câu trả lời:


25

Cách để làm điều này là sử dụng quy tắc udev sẽ áp dụng cho tất cả các thiết bị lưu trữ USB từ bất kỳ nhà sản xuất nào. Đối với phần email, lưu ý rằng Ubuntu Desktop KHÔNG bao gồm bất kỳ ứng dụng email dòng lệnh nào, vì vậy trừ khi bạn muốn cài đặt một tập lệnh, tập lệnh thông báo sẽ giao tiếp trực tiếp qua các lệnh SMTP thô đến máy chủ thư cục bộ của bạn.


Đây là +1 tuyệt vời từ tôi: D
karthick87

Câu trả lời tuyệt vời, và nó đã cung cấp tất cả nhu cầu đầu ra, cả email và ip
LnxSlck

@izx yêu cầu bạn xem câu hỏi của tôi để cập nhật ..
karthick87

Có lẽ, tập lệnh /etc/udev/rules.d/usbnotif.sh nên được lưu trữ ở nơi khác để tránh nhầm lẫn với các tệp quy tắc. Mặc dù về mặt kỹ thuật nó có thể ở lại đó.
elomage

@ karthick87: cảm ơn, tôi sẽ xem cập nhật điện thoại / mạng trong vài giờ nữa. Thông báo điện thoại không phải là vấn đề, nhưng độ trễ thông báo mạng có thể yêu cầu phải có máy chủ / máy khách SMTP phù hợp trên mỗi máy có thể xếp hàng thư cho đến khi được gửi. Nhưng tôi sẽ xem những gì tôi có thể làm :)
ish

18

Bạn có thể sử dụng Mực nang ( https://apps.ubfox.com/cat/appluggest/c mựcfish / )!

Mực nang là một chương trình có thể thực hiện các hành động khi các sự kiện xảy ra. Ví dụ: bạn có thể chạy lệnh khi cắm USB: nhập mô tả hình ảnh ở đây

Cách làm việc với Mực nang:

  1. Tạo một phản xạ mới từ góc trên bên trái: nhập mô tả hình ảnh ở đây
  2. Đặt tên cho sở thích của bạn, bật Activated by stimulusvà nhấp vào Noneđể chọn kích thích: nhập mô tả hình ảnh ở đây
  3. Bấm vào bên trái Hardwarevà bên phải USB device plugged in. Sau đó bấm OK. nhập mô tả hình ảnh ở đây
  4. Nhấp vào tab phản ứng và nhấp vào dấu cộng ở phía dưới bên trái: nhập mô tả hình ảnh ở đây
  5. Đi tới Ứng dụng-> Khởi động Ứng dụng (chế độ nâng cao). Sau đó bấm OK. nhập mô tả hình ảnh ở đây
  6. Bây giờ, ở bên phải, bạn có thể thấy rằng bạn có thể chọn một tệp thực thi để chạy với bất kỳ tham số nào bạn muốn, vì vậy, bạn phải để Mực nang chạy trên khay hệ thống và nó sẽ chạy lệnh của bạn mỗi khi cắm thiết bị USB: nhập mô tả hình ảnh ở đây

Tôi giả sử rằng bạn biết một lệnh mà bạn có thể sử dụng để gửi email của mình. Nếu không, xin vui lòng gửi nó như một bình luận để đưa nó vào câu trả lời của tôi.


Bạn có muốn tôi cài đặt mực nang và cấu hình nó trong tất cả 600 hệ thống Ubuntu không? Sau đó, đây là một nhiệm vụ lớn và khó khăn ..
karthick87

7
Sau khi bạn định cấu hình mực nang trên một trong các hệ thống, bạn có thể dễ dàng sao chép ~/.cuttlefish. Ngoài ra nếu bạn đánh dấu vào tự động khởi động ở cài đặt đăng nhập của mực nang (bạn có thể tìm thấy nó trong tùy chọn), bạn có thể thiết lập tự động khởi động trên mọi máy bằng cách nhân bản ~/.config/autostart/cuttlefish.desktop.
Alex

@ karthick87, những gì Alex nói. Theo như tôi biết thì không có gì bạn có thể làm theo mặc định. Vì vậy, dù sao bạn cũng nên làm một cái gì đó trên tất cả 600 hệ thống ...
hytromo

Điều đó có nghĩa là cuối cùng bạn thấy cách này đủ thoải mái?
hytromo

3

Theo câu trả lời này , hãy thêm mã này vào/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"

và trong usb.shtệp, thêm mã này

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

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

nguồn


Bây giờ tôi sẽ cố gắng tự động hóa nó, vì vậy bạn có thể thêm quy tắc / tập lệnh này trong 600 hệ thống 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

Kịch bản này không được kiểm tra và quá trình tự động hóa sẽ được cải thiện.
Ngay sau khi tôi thiết lập một số PC thử nghiệm.


Điều này có vẻ là +1 tốt từ tôi, vui lòng kiểm tra và cho tôi biết trạng thái làm việc. Vì vậy, tôi có thể áp dụng nó trong tất cả các hệ thống Ubuntu ..
karthick87

Điều này có phát hiện các thiết bị USB khác ngoài "SanDisk" không?
Takkat

4
Không, điều này sẽ chỉ hoạt động cho các thiết bị được tạo bởi Sandisk. Ngoài ra, muttkhông được cài đặt theo mặc định trên Ubuntu Desktop và ifconfig | grep ipcung cấp đầu ra null.
ish

1

Bạn sẽ có thể thấy bất kỳ thiết bị usb mới nào không chỉ lấy được sức mạnh của máy chủ (phù thủy thường bao gồm các điện thoại)

Đối với phần USB: Làm cách nào tôi có thể nghe các sự kiện 'thiết bị usb được chèn' trong Linux, bằng Python?

Gửi e-mail bằng python: email - Python - Làm cách nào để gửi e-mail utf-8?

Đối với ethernet, hãy sử dụng netplugd và sử dụng các câu lệnh lên hoặc xuống:
Ubuntu Manpage: netplugd - trình nền quản lý hotplug cáp mạng

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.