How To Prevent Access To Unmounted Mount Point
Ok, I have this in fstab
//windows_mashine/Backup /backups cifs credentials=/root/.credentials,rw,_netdev,iocharset=utf8,uid=1000 0 0
I have rsnapshot in my cron which backups /etc/ and /usr/local/ and some other files to /backups
Recently I find that when other mashine is down and /backups cannot be mounted rsnapshot backups to physical folder /backups thus it eats partition / space. How can I avoid this?
Can I prevent any writing to /backups when it is not mounted (rsnapshot runs as root, since it need to backup some system files)
Solution 1:
Another option is to set the directory to be immutable. To do this you need to run the following command with the mount point unmounted.
chattr +i /backups
I do this on any directory that is intended to only be a mount point just to prevent this sort of thing. Because there are situations where you're not in a position to add a check to see if something is mounted. Like if the process isn't a script that you control or it's a human that is generating or moving the data. This approach will prevent unwanted data getting written into an unmounted mount point in those situations. I would still add the mount check to your scripts so that you can output meaningful errors though.
Solution 2:
Why not just have the backup script test whether /backups is mounted, and exit if not?
mount | grep -q /backups || exit 1
Solution 3:
the easiest way to handle this is.. with rsnapshot directly.
You should have a look at the option no_create_root
HTH