我想在家里建立一个家庭 NAS。我想使用 SnapRAID 来保证完整性。因此,它需要定期运行 SnapRaid 同步。但是,同步过程要求在运行时不更改数据。因此,我需要编写一个执行此操作的脚本:
- 检查目前没有文件正在通过 NFS 共享写入。
- 如果是,请等待并重复
- 将 NFS 设置为只读
- 运行同步
- 再次使 NFS RW
问题是:
- 如何做#1?
- 如何执行 #3 而不会在客户端引起太多警报?我可以
mount -remount,ro
自己处理驱动器,或者编辑/etc/shares
。或者还有其他方法吗?
请给我建议...
答案1
使用lsof +d /yournfsshare
将告诉您在运行脚本时共享上是否有任何打开的文件。这可能会在 2 秒后发生变化。我建议使用将mount -o remount,ro /yournfsshare
共享设置为只读,然后rw
在完成后重新挂载。