我这边有个一个网盘设置回收站保存历史是6个月,但是有用户有删除的资料库超过6个月,我这边系统没有回收空间,请问这个资料库有办法找回来么?
如果资料库已经超过回收站保留时间,并且从系统回收站中被清除,Web 界面中无法直接恢复。
但如果服务器还没有执行过 GC,底层数据可能仍然存在,可以尝试通过 seaf-fsck 导出恢复。
https://manual.seafile.com/13.0/administration/seafile_fsck/
需要查找该资料库的 library-id,也就是 repo_id。
可以先在数据库中查询 seafile_db:
USE seafile_db;
SELECT
repo_id,
repo_name,
owner_id,
FROM_UNIXTIME(del_time) AS deleted_time
FROM RepoTrash
ORDER BY del_time DESC;
如果已经从 RepoTrash 中过期清除,再检查:
SELECT * FROM GarbageRepos;
如果能找到对应的 repo_id,就可以尝试导出:
cd /opt/seafile/seafile-server-latest
./seaf-fsck.sh --export /data/recovery <repo_id>
例如:
./seaf-fsck.sh --export /data/recovery \
ca1a860d-e1c1-4a52-8123-0bf9def8697f
如果数据库中已经无法确认对应的 repo_id,还可以从以前的浏览器访问地址、Seafile Client / SeaDrive 日志、服务器日志或数据库备份中查找。
如果是资料库被删除,超过六个月,按道理说已经被彻底删除了,无法被找回;删除的资料库在到指定时间后会被GC主动清理;如果是资料库里的回收站文件记录被删除了,可以尝试用fsck找回