插入USB存储设备后如何获取电子邮件通知?


27

我们公司中正在运行600多个Ubuntu系统。这是一个数据中心,因此我们有某些政策。我们已在所有Ubuntu系统中禁用了存储设备的使用。但是,我们想配置电子邮件警报。如果有人插入存储设备,我们将收到一封电子邮件警报,主题如下,

电子邮件提醒:

STORAGE DEVICE FOUND on IP: 172.29.35.18

注意:

  • 对于Windows系统,我们在DC中应用了某些策略。因此Windows系统没有问题。
  • 我们还需要接收有关Ubuntu系统的警报。任何完成上述任务的方法都会很棒。

更新:

  • 我想说明的几件事,如果用户断开网络电缆的连接,以及用户是否使用USB进行数据传输?我知道我不会得到任何提示,但是以后如果他们连接网络,就有可能收到那些待处理的通知吗?
  • 有些人使用USB为手机充电,是否还可能为此获得电子邮件通知?

我想你应该去看看的超级用户这个帖子:superuser.com/questions/305723/...

Answers:


25

执行此操作的方法是使用udev规则,该规则将适用于任何制造商的所有USB存储设备。对于电子邮件部分,请注意,Ubuntu Desktop不包含任何命令行电子邮件客户端,因此,除非您希望安装该客户端,否则通知脚本应通过原始SMTP命令直接与本地邮件服务器通信。


这是我的好+1:D
karthick87 2012年

很好的答案,它满足了电子邮件和ip的所有输出需求
LnxSlck 2012年

@izx请你看看我的问题的更新..
karthick87

也许应该将/etc/udev/rules.d/usbnotif.sh脚本存储在其他位置,以免与规则文件混淆。尽管从技术上讲它可以留在那里。
elomage 2012年

@ karthick87:谢谢,我将在几个小时后查看电话/网络更新。电话通知应该不是问题,但是网络通知延迟可能需要在每台机器上都具有适当的SMTP服务器/客户端,以便可以将邮件排队直到发送为止。但我会看看我能做什么:)
ish 2012年

18

您可以使用墨鱼(https://apps.ubuntu.com/cat/applications/cuttlefish/)!

墨鱼是一个可以在事件发生时执行操作的程序。例如,您可以在插入USB时运行命令: 在此处输入图片说明

如何与墨鱼一起工作:

  1. 从左上角进行新的反射: 在此处输入图片说明
  2. 给它指定您的偏好名称,启用Activated by stimulus,然后单击None以选择刺激: 在此处输入图片说明
  3. 单击左侧Hardware和右侧USB device plugged in。然后单击确定。 在此处输入图片说明
  4. 单击反应选项卡,然后单击左下方的加号: 在此处输入图片说明
  5. 转到应用程序->启动应用程序(高级模式)。然后单击确定。 在此处输入图片说明
  6. 现在,在右侧,您可以选择一个可执行文件以使用任何希望的参数运行,因此,您必须让Cuttlefish在系统托盘上运行,并且每次插入USB设备时它都会运行您的命令: 在此处输入图片说明

我假设您知道可以用来发送电子邮件的命令。如果没有,请以评论的形式发表,以将其包含在我的回答中。


您是否要我在所有600个ubuntu系统中安装墨鱼并进行配置?然后,它是一个大而艰巨的任务..
karthick87

7
在其中一个系统上配置了墨鱼之后,就可以轻松克隆~/.cuttlefish。同样,如果您在墨鱼的登录设置上勾选自动启动(可以在首选项中找到),则可以通过克隆在每台机器上设置自动启动~/.config/autostart/cuttlefish.desktop
亚历克斯(Alex)

@ karthick87,Alex说的话。据我所知,默认情况下您无法执行任何操作。因此,无论如何,您都应该在所有600个系统上做某事...
hytromo 2012年

毕竟,这是否意味着最终您会觉得这种方式足够舒适?
hytromo's

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

该脚本未经测试,并且自动化过程将得到改善。
一旦我安装了一些测试PC。


这对我来说似乎不错+1,请对其进行测试并让我知道其工作状态。这样我就可以在所有的Ubuntu系统上应用它..
karthick87

这会检测到不是“ SanDisk”制造的USB设备吗?
塔卡特2012年

4
不,这仅适用于Sandisk制造的设备。此外,mutt默认情况下未在Ubuntu桌面上安装该工具,并且ifconfig | grep ip输出为空。
ish 2012年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.