我正在做一个备份脚本,需要有一个用于外部 USB 驱动器的固定安装点。如果是第一个连接的 USB,它将安装在 /media/usb0/ 中,但是如果是第二个、第三个...它将安装在 /media/LABEL_OF_THE_DISK/ 中。这同样适用于 sdX。如果是第一个,则为 sdc1(我已经有两个磁盘),但如果是第二个,则为 sdd,第三个为 sde...
硬盘断开,只有在备份时间时才会连接(每周一次)
我可能会查看它安装在哪里并将参数作为“actual_mount_point”传递给脚本,但我想连接硬盘,运行脚本并完成备份,而无需编写任何内容。
所以问题是:是否可以为外部驱动器提供固定的安装点?
答案1
您还可以编写一个 udev 规则,它允许您指出磁盘连接时要执行的操作:
# cat /etc/udev/rules.d/99-usb-mount.rules
SUBSYSTEM=="usb", ACTION=="add", ENV{ID_SERIAL_SHORT}=="XXXXXXXXXX", RUN+="/path/to/script1.sh"
SUBSYSTEM=="usb", ACTION=="remove", ENV{ID_SERIAL_SHORT}=="XXXXXXXXXX", RUN+="/path/to/script2.sh"
例如,您可以在磁盘连接上自动备份
答案2
您可以向 /etc/fstab 添加条目
使用 blkid(定位/打印块设备属性)获取设备的 uuid,并在 fstab 中创建一个条目(保存有关文件系统的静态信息),例如 UUID=645a3aa3-09a3-4e9d-bc69-0a5466684137 /media/usb-data /ext4 默认 1 1
有关更多详细信息,请参阅“man fstab”
答案3
好的!我发现问题出在哪里了。我在 fstab 中有这一行:
/dev/sdc1 /media/usb0 auto rw,user,noauto 0 0
因此,当我连接第一个 USB 时,它始终安装在 /media/usb0 中。但是现在我删除了那条线,当我连接 USB 时并不重要,它总是安装在 /media/LABEL 中