回收站

CubeFS的卷默认没有开启回收站功能。可通过master服务接口开启卷的回收站功能:

  • name,卷名。
  • authKey,volume owner字符串的MD5值。
  • trashInterval,回收站清理被删除文件的周期,单位分钟。默认0为不开启回收站功能。
curl -v "http://127.0.0.1:17010/vol/setTrashInterval?name=test&authKey=&trashInterval=7200" | jq .

开启回收站功能后,客户端会在挂载点的根目录下创建一个名为.Trash的隐藏文件夹。.Trash内的Current文件夹内保留了当前被误删的文件/文件夹以及其完整的文件路径。

提示

为了提高回收站的删除效率,被删除的文件会会将父目录以平铺的方式显示在文件名中,并通过后台协程构建文件的父目录路径,因此当文件回收站内文件过多时,可能会短暂出现被删除文件没有父目录的情况,属于正常现象。

Current文件会定期被重命名为Expired_过期时间戳的文件夹。当Expired文件夹的过期时间戳到期时,则会删除该文件夹下的所有内容。

恢复误删文件

如前所述,只需要在.Trash文件夹下的Current或者Expired目录中找到被误删除的文件,即可根据其完整的父目录路径,将被误删的文件/文件夹通过mv操作恢复到被删除的原始位置。

清理回收站内的文件

需要注意的是回收站的内容依赖客户端的后台协程定期删除,因此如没有回收站对应卷的客户端在线时,回收站的内容会一直保留直到有回收站对应卷的客户端在线。

为了尽快的释放回收站的使用空间,也可以通过客户端直接对.Trash文件夹执行rm操作。

在github上编辑