我发生什么事了

我发生什么事了

我正在使用 samba 回收插件,并且在我的 [global] 部分中有以下内容

recycle:exclude = *.~lock*
recycle:repository = .recycled
recycle:versions = yes
recycle:keeptree = yes
vfs objects = recycle

我想为特定共享禁用此功能。我尝试vfs objects =在共享定义中放入,但这没有效果。我也尝试recycle:exclude = *在共享定义中放入,但这也不起作用。最后我尝试设置(在 [global] 部分),recycle:exclude_dir = /home/path/to/my/dir/手册页

我理解如何完全禁用 .recycle但这不是我想要的。

[下面有帮助的评论者建议的编辑!]

有问题的路径由 Dropbox 守护程序监控。这就是我不想要回收站的原因——它将有效地导致第二次占用带宽的上传,并且 .recycled/ 副本是不必要的,因为 Dropbox 无论如何都会对文件进行版本控制。

答案1

有一点解决方法,只需将权限 000 分配给共享上的回收站文件夹,它仍会存在,但不会写入任何文件。我不得不在我的备份文件夹中执行此操作,因为 Windows 会写入然后删除很多备份文件。

答案2

只需放入共享定义即可:

    recycle:exclude = *.*

至少这对于我在 Debian 8.0 x86_64 机器上使用 Samba 4.1.17 是有效的。

我发生什么事了

我为我们工作文件服务器上的所有共享启用了 Samba 回收站。例如:

[global]

...

    recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak, *.iso
    recycle:exclude_dir = tmp, cache
    recycle:keeptree = yes
    recycle:repository = /var/samba/trash/%S
    recycle:versions = yes

...

我还设置了 RECYCLE 共享,以便于恢复意外删除的文件:

[RECYCLE]
    path = /var/samba/trash
    writable = yes

然后我意识到,如果我从客户端机器上删除任何共享中的文件,然后将该文件从 RECYCLE 共享中剪切并粘贴到其原始共享中,Samba 就会创建 RECYCLE 共享的备份,并在其中包含恢复的文件(即回收站本身的回收站)。

我发现的解决方案是从 Samba 回收站功能中排除 RECYCLE 共享:

[global]

...

    recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak, *.iso
    recycle:exclude_dir = tmp, cache
    recycle:keeptree = yes
    recycle:repository = /var/samba/trash/%S
    recycle:versions = yes

...

[RECYCLE]
    path = /var/samba/trash
    recycle:exclude = *.*
    writable = yes

答案3

我不认为使用 samba 回收站插件仅对 1 个共享实现这一点,您最好使用 cron 中每分钟左右运行一次的脚本来清除回收站共享内的文件夹。

将 rm -rf /home/path/to/my/dir/* 之类的命令添加到 cron 中可以免去您担心 samba 配置的麻烦。

使用 cron 安排作业crontab -e并添加行

*/10 * * * * /bin/rm -rf /home/path/to/my/dir/*

使其每 10 分钟运行一次并清除里面的所有东西/home/path/to/my/dir/

答案4

要禁用特定共享的 vfs 回收,只需将其放入共享中:

vfs objects =

因此,要为所有共享启用 vfs 回收但不为“norecyclebin”,您的配置应如下所示:

[global]
...
   vfs objects = recycle
   recycle:repository = RECYCLER
   recycle:keeptree = Yes
   recycle:versions = Yes
   ...


[share]
   ...

[anothershare]
   ...

[norecyclebin]
   ...
   # disable recycle bin for this share
   vfs objects =

相关内容