如何在插入USB存储设备时收到电子邮件通知?
我们在公司运行600多个Ubuntu系统。 它是一个数据中心,所以我们有一些政策。 我们已禁用所有Ubuntu系统中存储设备的使用。 但是,我们想配置电子邮件警报。 如果有人插入存储设备,我们应该收到一封电子邮件提醒,主题如下,
电邮提示:
STORAGE DEVICE FOUND on IP: 172.29.35.18
注意:
- 对于Windows系统,我们在DC中应用了某些策略。 所以Windows系统没有问题。
- 我们还需要接收Ubuntu系统的警报。 任何完成上述任务的方法都会很棒。
更新:
- 我想澄清一些事情,如果用户断开网络电缆并且用户是否使用USB进行数据传输? 我知道我不会得到任何暗示但后来如果他们连接网络是否有可能获得这些待处理的通知?
- 有些人使用USB为他们的手机充电,是否有可能获得电子邮件通知?
这样做的方法是使用udev规则,该规则适用于任何制造商的所有USB存储设备。 对于电子邮件部分,请注意Ubuntu Desktop不包含任何命令行电子邮件客户端,因此除非您希望安装一个,否则通知脚本应通过原始SMTP命令直接与本地邮件服务器通信。
您可以使用墨鱼( https://apps.ubuntu.com/cat/applications/cuttlefish/ )!
墨鱼是一种可以在事件发生时执行操作的程序。 例如,您可以在插入USB时运行命令:
如何使用墨鱼:
- 从左上角制作一个新的Reflex:
- 为它指定首选项的名称,启用“
Activated by stimulus
,然后单击“None
”以选择刺激: - 单击左侧
Hardware
和USB device plugged in
的右侧USB device plugged in
。 然后单击确定。 - 单击反应选项卡,然后单击左下角的加号:
- 前往应用程序 – >启动应用程序(高级模式)。 然后单击确定。
- 现在,在右侧,您可以看到您可以选择一个可执行文件来运行您想要的任何参数,因此,您必须让Cuttlefish在系统托盘上运行,并且每次插入USB设备时它都会运行您的命令:
我假设您知道一个可以用来发送电子邮件的命令。 如果没有,请将其作为评论发布,以便将其包含在我的答案中。
根据此答案 ,将此代码添加到/etc/udev/rules.d/90-local.rules
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[az]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[az]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
未对此脚本进行测试 ,并且将改进自动化过程。
我一设置了一些测试PC。
您将能够看到任何新的USB设备,它不仅可以获取服务器的电源(通常包括电话)
对于USB部分: 我如何在Python中用Linux监听’usb device inserted’事件?
在python中发送电子邮件: email – Python – 如何发送utf-8电子邮件?
对于以太网使用netplugd并使用up或down语句:
Ubuntu Manpage:netplugd – 网络电缆hotplug管理守护进程