Linux 下如何设置一个目录,只有在被挂载的情况下才能进行读写?

2021-09-15 10:35:19 +08:00
 wszgrcy

事情是这样的,昨天路由死机了,然后费了好大劲上去了(由于是 docker 内跑的,所以宿主机还能上去) 进去后一看,好家伙,直接 100%硬盘占用了,于是想到之前下载电影下到一半死活下不动,但是做种的人还很多,就明白了,挂载的硬盘掉了,然后挂载的目录还存在,于是就往机器里写了.... 被坑好几回了,并且这个问题又不是删掉下载文件就能解决的.删掉后重启路由,发现很多配置也掉了(猜测是硬盘满了,配置写不进去,然后清空后丢失了?)...又要重新部署一次路由 所以问下大佬们,可以给一个目录设置某种权限?规定这个目录只有在被挂载的情况下才能进行读写操作吗?

1482 次点击
所在节点    Linux
7 条回复
expy
2021-09-15 10:45:32 +08:00
chattr +i 应该可以吧。
superrichman
2021-09-15 10:53:20 +08:00
mountpoint 判断
weyou
2021-09-15 10:58:32 +08:00
最简单就是将下载目录放在二级目录。比如挂载目录是 /media/disk,然后将下载目录设置为 /media/disk/download 。因为不挂载的时候没有这个 download 目录,下载工具就会停止
AoEiuV020
2021-09-15 11:07:04 +08:00
就普通的 chmod 000 就可能吧,挂载之后会是挂载的权限,掉了就恢复 000 也就用不了了,
wszgrcy
2021-09-15 11:34:47 +08:00
@AoEiuV020 还能这样啊,我回去研究下下谢谢谢
@expy @superrichman @weyou 感谢,我回去也看下
CEBBCAT
2021-09-15 11:50:47 +08:00
帮楼上补几个链接:
https://serverfault.com/q/570255 ( chattr #1 、mountpoint #2 )
https://unix.stackexchange.com/q/369738 ( over mount #3 )
iBugOne
2021-09-15 21:35:11 +08:00
如果你用 systemd 服务的话,可以指定 RequiresMountsFor=/mnt/example 确保服务仅在有挂载的时候才会运行(否则直接 fail )

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/801947

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX