防止将数据写入未挂载的挂载点目录的可能性

防止将数据写入未挂载的挂载点目录的可能性

我有一台 Ubuntu 服务器,每次启动时都会自动安装一个外部硬盘。

为此,我在根分区上创建了一个空文件夹,并将驱动器安装到该文件夹​​“内部”。

但是,如果驱动器未正确安装时我执行此路径的备份会怎样?备份反而会填满我的根分区!

我可以通过执行以下操作来确保每次都安装驱动器:

sudo mount -a

... 每次备份之前。

但是,有什么最佳做法可以确保数据永远不会写入空的挂载文件夹(除非外部硬盘驱动器真正挂载)?

不用脚本可以解决这个问题吗?比如说有权限?最佳做法是什么?

答案1

我更进一步,总是使用以下方法将挂载点目录的属性设置为不可变聊天室

这是通过chattr +i /mountpoint(卸载安装座)实现的。

这会导致新的写入活动出错,并且在其他情况下保护挂载点。

但是我认为你可以使用mountpoint 命令, 也 ;)

答案2

为了扩展有关使用的评论mountpoint,当我需要检查这类事情时,这大致是我在脚本中输入的内容:

DEST='/mnt/backup'
if ! mountpoint -q "$DEST" ; then
    echo "Destination is not mounted; attempting to mount"
    mount $DEST
    if ! mountpoint -q "$DEST" ; then
        echo >&2 "Unable to mount $DEST; Aborting"
        exit 1
    fi
    echo "Mounted $DEST; Continuing backup"
fi

这假设$DEST存在于;它是否是或挂载点/etc/fstab并不重要。autonoauto

根据mount手册页:

如果仅给出目录或设备,例如:

mount /dir

然后mount查找挂载点,如果未找到,则查找/etc/fstab文件中的设备。可以使用 --target--source选项来避免对给定参数产生矛盾的解释。例如

mount --target /mountpoint

相关内容