1. 问题原因

Nextcloud 默认会为每个文件保存多个历史版本(尤其是文档、图片等),导致 files_versions 目录不断增长。你的 external/bakups 可能是某个外部存储的备份文件版本。


2. 解决方案

(1)清理旧版本文件(推荐)

Nextcloud 提供了官方命令清理旧版本:

sudo -u www-data php /var/www/nextcloud/occ versions:cleanup

这会根据 Nextcloud 的版本保留策略自动清理旧版本。

(2)手动删除特定备份(谨慎操作)

如果想直接清理 external/bakups

# 先确认内容(列出文件)
sudo ls -lh /home/nextcloud/data/root/files_versions/external/bakups

# 删除文件(示例:保留最近30天的)
sudo find /home/nextcloud/data/root/files_versions/external/bakups -type f -mtime +30 -delete

(3)调整版本控制策略

编辑 Nextcloud 的 config/config.php,限制版本保留数量:

'versions_retention_obligation' => 'auto',  // 自动清理
'versions_retention_days' => 30,           // 最多保留30天

(4)禁用版本控制(极端情况)

如果不需要版本历史,可以直接关闭:

sudo -u www-data php /var/www/nextcloud/occ config:app:set files versions_enabled --value=no

3. 其他可能的大目录处理

  • files_trashbin (20GB):Nextcloud 回收站,可通过 Web 界面清空或运行:
    sudo -u www-data php /var/www/nextcloud/occ trashbin:cleanup --all-users
    
  • appdata_ocxogl2rfh06 (2.3GB):应用数据,通常无需手动清理。

4. 预防措施

  • 定期维护:将 occ versions:cleanup 加入 cron 任务。
  • 监控工具:安装 ncdubaobab 定期检查存储。
  • 外部存储优化:如果 external 是挂载的远程存储,考虑压缩或归档旧备份。

操作注意

  • 备份数据:清理前建议备份重要文件。
  • 权限问题:务必使用 sudo -u www-datawww-data 用户操作 Nextcloud 文件,避免权限错误。