问题描述
在 Nextcloud 客户端上发现一些文件无法进行修改和删除导致无法正常进行文件同步;然后通过网页访问,有的文件依旧不能重命名或者删除。
去查看了 nextcloud 的日志,发现一些文件被锁了,导致了以上情况,如下图:
问题解决
说明
我是通过使用群晖套件中的 Web Station 和 MariaDB 10 数据库搭建的 Nextcloud。如果你不是这么搭建的可能过程有所不同,但是大差不差
打开 SSH
在 控制面板 > 终端机和 SNMP
中启用 SSH 功能
将 Nextcloud 改为维护模式
找到你的 Nextcloud 安装目录下的 /你的Nextcloud安装目录/config/config.php
文件,比如我的是 /web/web/nextcloud/config/config.php
打开 config.php
文件将里面的:
'maintenance' => true,
改为:
'maintenance' => false,
然后保存文件
使用客户端链接 NAS
使用随便什么 SSH 客户端链接上你的 NAS,至于怎么连这里不再赘述
修改 MariaDB 数据库
注意:下面的操作会涉及到数据库,一定要小心操作,不要输入奇奇怪怪的指令
-
在连接上之后通过
sudo -i
指令切换为管理员 -
进入 MariaDB 目录
我的MariaDB 安装在存储空间 1 中了,所以是
volume1
。个人视情况修改cd /volume1/@appstore/MariaDB10/usr/local/mariadb10/bin
-
登录 MariaDB
./mysql -u root -p
之后输入 MariaDB 的管理员密码,如果你忘了的话可以去套件中重置
-
更改数据库为 nextcloud 的数据库
use 你的数据库名字
如果忘了你的数据库名的话,可以在之前打开的
config.php
文件中查看
如果切换成功会像这样:
-
查看文件是否被锁
select * from `oc_file_locks` where `lock`<>"0";
这条命令的执行时间可能有点长,耐心等待。不出意外的话会输出被锁文件的列表:
-
解锁文件
update `oc_file_locks` set `lock`="0" where `lock`<>"0";
成功的话会显示受影响的行数:
-
关闭 SSH 客户端
为了安全起见,还可以直接在群晖的控制面板中关闭整个 SSH
关闭 Nextcloud 的维护模式
在我们之前打开的 /你的Nextcloud安装目录/config/config.php
文件中的
'maintenance' => false,
改回:
'maintenance' => true,
然后保存文件
重启 NAS
因为我懒,所以就直接重启 NAS 了,有能力的可以用指令重启各个服务