热插拔 SATA 驱动器(托架而非 esata)时自动 rsync

热插拔 SATA 驱动器(托架而非 esata)时自动 rsync

为了保持备份,我想在将特定 SATA 硬盘插入任何或所有热插拔托架时运行特定的 rsync 命令。这会以某种方式使用 uuid 来跟踪驱动器吗?每当我搜索时,我都会找到用于 usb 驱动器的 udev,这在这里也可以工作吗?

答案1

我为此使用了一个简单的 udev 规则。备份驱动器标有特定的卷标(使用 tune2fs 进行设置)。udev 规则启动一个脚本:

$ cat /etc/udev/rules.d/90-backup.rules 
ACTION=="add", ENV{ID_FS_LABEL}=="backup", RUN+="/usr/local/bin/backup.sh"

(如果您不想使用卷标,则可以使用 ENV{ID_FS_UUID}="some-uuid")

该脚本仅运行 rsync:

$ cat /usr/local/bin/backup.sh
#!/bin/bash

mnt=/media/backup

(
mount $mnt
rsync -avx --exclude lost+found /home/ $mnt/backup/
umount $mnt
) > /dev/null 2>&1 &

udev 认为 RUN="" 命令是短暂的,因此脚本在后台运行 rsync。

这将适用于任何类型的驱动器和/或接口 - 只要 udev 收到驱动器已添加的通知。

相关内容