systemd 自动挂载特定 USB 设备后运行备份脚本

systemd 自动挂载特定 USB 设备后运行备份脚本

我需要在安装特定 USB 记忆棒后运行一个脚本,特别是执行备份。

我见过许多(和旧的)帖子在 udev 规则内安装设备,但是现代操作系统已经将 systemd 预配置为自动安装闪存驱动器。

我有这个 udev 规则,

ACTION=="add", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="000c", SUBSYSTEM=="block", ENV{ID_FS_USAGE}=="filesystem", RUN+="/home/me/scripts/backup-x.sh"

因为这是我知道的唯一一个可以在设备连接后专门运行某些东西的 Linux 内核钩子。

然而,当设备被 systemd 自动安装时,即。连接后右侧/media/me/0021-0000

Sep 27 12:32:00 t14 udisksd[1272]: Mounted /dev/sda at /media/me/0021-0000 on behalf of uid 1000

我想我不应该在 udev RUN 脚本中安装它(甚至执行长时间操作,如备份)。在 RUN 脚本中尝试过这个,

systemd-mount --owner me $DEVNAME /mnt/x
zip /home/me/x/backup-$(date +'%Y-%m-%d_%H%M%S').zip /mnt/x/*

但是,它会产生 2 个不同的安装座。我的首先发生,然后是 auto /media/me/0021-0000。我想知道这样好不好。

实现这一目标的最简单且正确的方法是什么?

PD:运行 Pop!_OS 22.04LTS

相关内容