我有一个Ubuntu服务器,我在每次启动时自动挂载外部硬盘驱动器。
为此,我在根分区上创build了一个空文件夹,并将驱动器挂载到该文件夹的“内部”。
但是,如果在驱动器未正确安装时对此path执行备份,该怎么办? 备份将填满我的根分区!
我可以通过执行以下操作确保每次安装驱动器:
sudo mount -a
每次备份前
但是,确保数据永远不会写入空的装载文件夹的最佳实践是什么(除非外部硬盘驱动器是真正安装的)?
这可以解决没有脚本? 例如说权限? 什么是最佳实践?
我更进一步,总是使用chattr将我的安装点目录的属性设置为不可变的。
这是通过chattr +i /mountpoint (挂载未挂载)完成的。
这会错误地执行新的写入操作,并在其他情况下保护挂载点。
但是我想你也可以使用mountpoint命令 ;)
为了扩展关于使用mountpoint的评论,当我需要检查这些types的东西时,这大致是我放入脚本中的:
DEST='/mnt/backup' if ! mountpoint -q "$DEST" ; then echo "Destination is not mounted; attempting to mount" mount $DEST if ! mountpoint -q "$DEST" ; then echo "Unable to mount $DEST; Aborting" exit 1 fi echo "Mounted $DEST; Continuing backup" fi
这假定$ DEST存在于/etc/fstab ; 它是auto还是noauto挂载点并不重要。
根据mount手册页:
如果只给出目录或设备,例如:
mount /dir然后挂载寻找一个挂载点,如果找不到,那么对于/ etc / fstab文件中的设备。 可以使用–tar-get或–source选项来避免给定参数的矛盾解释。 例如
mount --target /mountpoint