关于seafile文件删除后继续占用空间的问题

**_

求指教一下如何能正确的清理seafile占用的磁盘空间

_**

在网盘里面上传了一些电影,当删除它们后,在seafile网页端(头像里面的已占用空间)能看到占用的磁盘空间被清除了。但是进入服务器用df命令查看磁盘状态时,发现依然还继续占用磁盘空间,使用官网文档提供的垃圾回收命令
./seaf-gc.sh
运行后(停机运行的,因为是社区版),磁盘空间依然没有变化。此时,再次传入一些新的影片,比如1G的文件,这个时候会继续扩充整个磁盘,感觉不多久,磁盘就会全满(抓狂中。。。)

系统环境:
Linux Centos 7.2 seafile服务
使用memcached做缓存
使用mysql做数据库

试试

1.清空资料库回收站,
2.管理员界面清空已删除资料库,

再运行 seaf-gc.sh -r

你好,感谢你的回答。
可能我没有表述清楚,当前情况是这样的:
我的资料库并不想删除,只是将里面的一些文件删除了。因为这个资料库(就是电影)还是会继续存放文件(电影)的,所以不会删除资料库。
我的疑问是:
在资料库不删除的情况下,只是删除其中的一些文件,被删除的数据块(文档好像是表述的数据块)是否会一直占用磁盘空间?这样的一部分数据块要怎么清除?

资料库会保留最新的一次更改,所以最后一次被删除的文件不会被清空。

你可以重新上传一个小文件,然后删除、清空后,再运行 seaf-gc.sh(这时不需要加 -r 参数)。

1 个赞

你好。
按照你的方法我尝试了一下,我的操作步骤:
1.从资料库中删除一个影片文件;
2.重新上传一个小文件;
3.删除小文件之后,关闭服务
4.执行seaf-gc.sh命令,并重新开启服务

按照上述操作之后,磁盘空间依旧没有减少(反复尝试了几次上述步骤)。从seaf-gc.sh命令的控制台输出可以看到:(影音先锋就是我的资料库,影片就存放在这里)

[11/08/16 11:20:46] gc-core.c(440): GC version 1 repo 影音先锋(11211836-952d-43af-8868-64dfd3bd091c)
[11/08/16 11:20:46] gc-core.c(313): GC started. Total block number is 26232.
[11/08/16 11:20:46] gc-core.c(46): GC index size is 13116 Byte.
[11/08/16 11:20:46] gc-core.c(327): Populating index.
[11/08/16 11:20:46] gc-core.c(181): Populating index for repo 11211836.
[11/08/16 11:20:48] gc-core.c(234): Traversed 213 commits, 26232 blocks.
[11/08/16 11:20:48] gc-core.c(341): Scanning and deleting unused blocks.
[11/08/16 11:20:48] gc-core.c(364): GC finished. 26232 blocks total, about 26232 reachable blocks, 0 blocks are removed.

我注意到这里写的是"0 blocks are removed",似乎并没有删除任何数据块。
备注:我用的是社区版6.0.4

我自己测试的步骤是:

  1. 上传大文件,删除大文件,清空所在资料库的回收站。
  2. ./seahub.sh stop./seafile.sh stop./seaf-gc.sh
  3. ./seafile.sh start./seahub.sh start
  4. 上传小文件至同一资料库,删除小文件,清空资料库的回收站。
  5. ./seahub.sh stop./seafile.sh stop./seaf-gc.sh

注意需要清空两次回收站。

4 个赞

懂了。我唯一没做的事情就是“清空所在资料库的回收站”。

多谢提醒,顺便也让我找到了文档上一直提及的回收站(囧,这个图标我每次都忽视掉了,眼神不好)

非常感谢,问题解决了。真是不好意思。

請問一下 如果有windows server 2008 r2 上裝server 的話

應該在那裡运行 seaf-gc.sh -r

windows 下的垃圾回收可以看这里 https://manual-cn.seafile.com/deploy_windows/windows_gc.html

請問有方法用CODE令SEAFILE SERVER自動關閉嗎??

我一直不明白的为什么清空回收站,运行./seaf-gc.sh之后不能立即释放空间,还要上传一个小文件然后再次重复操作才能释放空间。

应该是可以能立即释放空间的,但是必须要在界面当中将对应资料库的“资料库回收站”里面的内容清空后,再运行./seaf-gc.sh来释放空间。

1 个赞

请问在openwrt/LEDE下怎么清空?我用的是5.1.4的版本,谢谢大家了!

实测,其实资料库回收站,里去清空,再 gc,不会回收空间的
直至seafile 6.2.1还是这样

这样管理起来就很麻烦了

没有自动gc的功能吗?

1 个赞

我的也是,点击清空回收站,后端存储空间也不会回收

问题是管理员怎么可能让每个用户自己去清空自己的资料库回收站啊?

这是个问题
确实不太现实

感谢 也遇到了同样的问题 解决了

有關windows版server的自動化gc可參考