从2022年4月6日发布的 Synology Drive Server 3.1.0-22920 开始,管理控制台提供了一个转换“我的文件”功能,可以将索引范围扩展到整个家目录,这个转换无法恢复。

这导致家目录下所有文件都被索引,占用了非常多的资源。具体表现为:

  • 使用SSH终端访问服务器的时候,会产生诸如.ssh.zsh_histroy等隐藏文件夹和文件,每一次执行命令都会更新.zsh_history触发索引扫描(可以在Web控制台看到 Universal Search 正在索引)。
  • Synology Drive 页面会显示这些隐藏文件,给管理文件带来极大不便。
  • 如果使用家目录作为工作目录,拉取项目,编译代码,产生中间文件被索引会占用大量系统资源。

我尝试向群晖技术支持寻求帮助,但是得到回复这是不可能的。但是我找到了一个方法可以恢复到之前的只同步 Drive 子文件夹。

免责声明
您需自行承担操作的风险,由此导致的任何数据丢失,本人概不负责。

环境说明

  • DS920+
  • DSM 7.3-81180
  • Synology Driver Server 4.0.0-27887

准备工作

  • 确保您已备份所有数据。
  • 确保 Synology Drive 客户端当前不存在同步任务,如果有请删除任务,完成后再重新添加。
  • 确保开启SSH终端访问。

操作过程

使用SSH终端连接到 NAS,使用sudo -i提权。

ssh username@nas_address
sudo -i

停止 Synology Drive Server 服务。

synosystemctl stop pkgctl-SynologyDrive.service

备份数据库文件

进入/volume1/@synologydrive/@sync文件夹,对关键数据库进行备份,备份到共享文件夹或者外部存储设备。

cd /volume1/@synologydrive/@sync
cp syncfolder-db.sqlite /path/to/folder/syncfolder-db.sqlite

使用sqlite3打开数据库文件,修改config_table表,将index_home_config改为0。

sqlite3 syncfolder-db.sqlite

# sqlite
sqlite> UPDATE config_table SET value='0' WHERE key='index_home_config';
sqlite> .exit

重启 Synology Driver 服务。

synosystemctl start pkgctl-SynologyDrive.service

删除旧的 Universal Search 索引文件夹。

Synology Drive 使用 Universal Search 来进行文件夹索引,它会自动为每个用户创建对应的索引文件夹条目,但是之前已经添加的索引文件夹并不会自动删除。

在 Universal Search 设置页面可以看到Synology Drive分组下删除按钮是灰色的,需要通过更改配置文件来删除。

使用 vim 编辑/usr/syno/etc/packages/SynoFinder/fileindex.folders文件,将需要删除的条目group改为空,稍后在配置页面点击刷新,会看到该条目在用户自定义分则下,此时可用删除按钮删除相应条目。

[
    {
        "audio": false,
        "document": false,
        "group": "",
        "name": "Synology Drive (xueye)",
        "owner": "SynologyDrive",
        "path": "/homes/xueye",
        "paused": false,
        "photo": false,
        "privileged": true,
        "share_path_before_pause": "",
        "video": false,
        "volume_to_be_clean": ""
    },
    {
        "audio": false,
        "document": false,
        "group": "SYNO.SDS.Drive.Application:drive:displayname",
        "name": "Synology Drive (xueye)",
        "owner": "SynologyDrive",
        "path": "/homes/xueye/Drive",
        "paused": false,
        "photo": false,
        "privileged": true,
        "share_path_before_pause": "",
        "video": false,
        "volume_to_be_clean": ""
    }
]

也可以在配置文件中直接删除对应项目,但是在配置页面刷新只能看到条目消失,并没有真实生效,需要重启 Universal Search 服务,让它读取新的配置文件才能生效。在重启 Universal Search 服务也会导致依赖它的服务一并重启。推荐使用设置页面删除,在设置页面通过删除按钮删除还会自动删除相关索引。

参考资料

最后修改:2025 年 11 月 13 日
如果觉得我的文章对你有用,请随意赞赏