过去几天我遇到了一些问题。ro
当检测到一些 ext4 错误时,我的根分区会随机重新挂载(只读)。
我已经安装了另一块硬盘,/mnt/files
并且该目录下的所有内容都使用 Nextcloud 同步。
当根文件系统以只读方式重新挂载时,Nextcloud 开始随机删除我的数据。这不是问题,因为我总是可以从服务器上的垃圾箱中恢复文件。恢复过程需要很长时间,所以我想在根文件系统重新挂载时立即关闭 Nextcloud,以防止进一步的数据丢失。
killall nextcloud
重新安装时可以运行吗ro
?
无论如何,我启动了实时 CD 并修复了所有检测到的错误,所以它不会再发生,但我想确保它不会再影响我的数据。
答案1
systemd
如果您想每 15 分钟检查一次根文件系统是否是只读的,可以通过以下方式解决此问题:
- 创建检查文件系统的脚本并使其可执行:
/bin/sh #!/bin/sh 复制代码 取消设置 $rootfs 取消设置 $status rootfs=SDXn#用 sda1 替换例如。 grep -E ''$rootfs'.*\ ro' /proc/mounts 2>&1 > /dev/null 状态=$? 如果 [ $status = 0 ]; 然后 echo“$rootfs 不正常” 杀死所有 nextcloud 出口 1 别的 echo“$rootfs 没问题” 出口 0 菲
systemd service
在中创建/lib/systemd/system/
:
[单元] 描述=当文件系统为只读时终止 nextcloud 客户端 [服务] 类型=oneshot ExecStart=/路径/到/script.sh
- 创建
systemd timer
并/lib/systemd/system/
启用/启动systemctl [enable|start] name_of_file.timer
:
[单元] 描述=当文件系统为只读时终止 nextcloud 客户端 [定时器] 日历=*:0/15 [安装] WantedBy=timers.target
请注意,.timer 和 .service 文件需要具有相同的名称。