我有一台 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
并不重要。auto
noauto
根据mount
手册页:
如果仅给出目录或设备,例如:
mount /dir
然后
mount
查找挂载点,如果未找到,则查找/etc/fstab
文件中的设备。可以使用 --target
或--source
选项来避免对给定参数产生矛盾的解释。例如mount --target /mountpoint