Sch*_*iss 4 automation linux backup bash udev
我目前有一个系统可以将我的 Linux 服务器备份到/media/usb. 这一切正常。但是,我实际上有 2 个驱动器,我们尝试每天更换它们。
例如,如果插入 USB 设备并使用sendmail某种方式或类似的方式向管理员发送电子邮件(例如,如果驱动器已超过 3 天未更换)是否有任何记录?
你可以解析 /var/log/messages,但我不会。
我会编写一个 udev 规则,在您连接/断开设备时运行脚本。这里有更多关于它的信息
我已经复制了要点,以防网站宕机:
规则文件存储在
/etc/udev/rules.d/目录中。该目录中的 README 中有一些关于如何命名规则文件的建议:
文件应该命名为xx-descriptive-name.rules,按照以下顺序点先选择xx:
< 60 条大多数用户规则;如果要防止默认规则覆盖赋值,请使用 := 运算符。
这些无法访问持久信息,例如来自 vol_id 的信息
< 70 条运行诸如 vol_id 之类的帮助程序来填充 udev 数据库的规则
< 90 条运行其他程序的规则(通常使用 udev db 中的信息)
= 90 条应该最后运行的规则
udev 规则的第一部分是匹配的键。我们将使用链顶部的 KERNEL 条目以及设备特定信息中的 idVendor、idProduct 和 serial 属性。这将积极识别此特定 U 盘并忽略所有其他 U 盘。内核参数使用问号作为通配符,因此如果我们的驱动器安装在不同的节点上(即:sda1、sdb1、sdc1 等),它仍然可以被识别。
KERNEL=="sd?1", ATTRS{idVendor}=="13fe", ATTRS{idProduct}=="1f00",
ATTRS{serial}=="50E6920B000AE8"
Run Code Online (Sandbox Code Playgroud)
现在我们有了识别我们正在寻找的特定硬件所需的键,我们可以添加赋值参数。在我们的例子中,我们添加了两个。第一个在 /dev/ 目录中创建指向该设备的符号链接。第二个在我们的主目录中执行一个脚本:
SYMLINK+="hackaday", RUN+="/home/mike/notify-plugin.sh 'HackaDay Thumbdrive:' 'Connected as: $KERNEL'"
Run Code Online (Sandbox Code Playgroud)
这是最终规则组合成一行:
KERNEL=="sd?1", ATTRS{idVendor}=="13fe", ATTRS{idProduct}=="1f00", ATTRS{serial}=="50E6920B000AE8", SYMLINK+="hackaday", RUN+="/home/mike/notify-plugin.sh 'HackaDay Thumbdrive:' 'Connected as: $KERNEL'"
Run Code Online (Sandbox Code Playgroud)
我们将其添加为规则文件中的唯一行,然后使用以下命令重新启动 udev:
sudo nano /etc/udev/rules.d/81-thumbdrive.rules
sudo /etc/init.d/udev restart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11435 次 |
| 最近记录: |