我们每天都有一个自动的rsnapshot作业,在挂载的磁盘上写入。 最近,它不是在安装的磁盘上写文件,而是在主文件系统上进行写操作,而不是在可用空间中填充。
有没有一个选项,我可以在挂载定义(fstab)中使用,以确保如果挂载不可用,写入主磁盘? 或者是我必须把相关的快照的脚本?
谢谢
安装文件系统时,安装点将获得该文件系统的根索引节点的权限。 如果没有安装文件系统,则充当挂载点的目录只是父文件系统上的另一个目录。
您可以使用这个事实来防止意外地写入到可能未安装的安装点:
chmod 0000 /path/to/mountpoint应该很好地工作。 请注意,如果root正在执行写操作,并且通常的权限检查被绕过,则这不起作用。
你可以用immutable标志( BSD系统上的schg或uchg , 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