挂载点工作不正常

我们每天都有一个自动的rsnapshot作业,在挂载的磁盘上写入。 最近,它不是在安装的磁盘上写文件,而是在主文件系统上进行写操作,而不是在可用空间中填充。

有没有一个选项,我可以在挂载定义(fstab)中使用,以确保如果挂载不可用,写入主磁盘? 或者是我必须把相关的快照的脚本?

谢谢

安装文件系统时,安装点将获得该文件系统的根索引节点的权限。 如果没有安装文件系统,则充当挂载点的目录只是父文件系统上的另一个目录。

您可以使用这个事实来防止意外地写入到可能未安装的安装点:

  1. 卸载目标文件系统。
  2. 将安装点的权限更改为不友好的东西。
    就像chmod 0000 /path/to/mountpoint应该很好地工作。
  3. 重新安装目标文件系统
    挂载点上的权限应该更改为匹配已挂载文件系统的根inode的权限。

请注意,如果root正在执行写操作,并且通常的权限检查被绕过,则这不起作用。
你可以用immutable标志( BSD系统上的schguchg , Linux系统上的i属性)做类似的事情,但是我没有亲自testing文件系统属性的行为。 直观上,他们应该像文件系统权限一样工作。


请注意,理想情况下,您希望修改备份脚本以确保安装相应的文件系统,否则您将不得不捕获并处理上述解决scheme产生的错误。
检测到适当的文件系统不在mount的输出可能是一个更强大的解决scheme。

典型的解决scheme是使用mountpoint命令检查脚本。

 if mountpoint -q $dir ; then echo "$dir is not mounted" exit 1 else echo "$dir is mounted" fi 

另一种方法是用stat来testing:

 if [ `stat -fc%t:%T "$dir"` != `stat -fc%t:%T "$dir/.."` ]; then echo "$dir is mounted" else echo "$dir is not mounted" exit 1 fi 

有点老,但万一别人发现这一点。

请参阅/etc/rsnapshot.conf

 # If no_create_root is enabled, rsnapshot will not automatically create the # snapshot_root directory. This is particularly useful if you are backing # up to removable media, such as a FireWire or USB drive. # no_create_root 1