如何防止访问未安装的挂载点


8

好的,我在fstab中有这个

  //windows_mashine/Backup /backups cifs credentials=/root/.credentials,rw,_netdev,iocharset=utf8,uid=1000 0 0

我的cron中有rsnapshot,可将/ etc /和/ usr / local /以及其他一些文件备份到/ backups

最近,我发现当其他mashine关闭并且无法将/ backups挂载时,rsnapshot备份到物理文件夹/ backups,因此它占用了分区/空间。如何避免这种情况?

我可以防止未挂载时对/ backups的任何写入(rsnapshot以root身份运行,因为它需要备份一些系统文件)

Answers:


17

另一种选择是将目录设置为不可变的。为此,您需要在安装点未安装的情况下运行以下命令。

chattr +i /backups

我在旨在仅作为安装点的任何目录上执行此操作,只是为了防止此类情况。因为在某些情况下您无法添加检查以查看是否已安装东西。就像过程不是您要控制的脚本,还是生成或移动数据的人一样。在这种情况下,这种方法可以防止将不需要的数据写入卸载的挂载点。我仍然会在您的脚本中添加安装检查,以便您可以输出有意义的错误。


1
它可以工作,除了挂载点文件夹外,无需修改其他任何内容。大!
jonny

6

为什么不让备份脚本测试是否已安装/ backups,如果没有则退出呢?

mount | grep -q /backups || exit 1

刚刚将我的crontab修改为if [ ! -z "$(ls /backups/)" ]; then /usr/bin/rsnapshot daily; fi;
jonny

2

解决此问题的最简单方法是直接使用rsnapshot。

你应该看看这个选项 no_create_root

高温超导

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.