之前在使用windows服务器做文件共享时,如果客户端在共享文件夹里删除文件,那么将无法在服务器端找到已经删除的文件.如果在客户端有误删文件的情况,那么成功恢复文件的机率将非常小.
后来在网上查阅了一些资料, 原来samba共享是可以添加回收站功能的.删除的文件给直接放到设置好的回收站目录里.
只需要在已经设置好的共享文件字段里加上以下代码:
#recycle:repository = /samba/deleted/public/%U #指定该共享文件夹的回收站目录 %U是按登录的用户名分开存放
recycle:repository = /samba/deleted/public
recycle:keeptree = Yes #指定是否按删除时的目录结构存放
recycle:versions = Yes #指定是否区覆盖同名的文件,yes是不覆盖
recycle:maxsixe = 0 #指定回收站目录的大小,0是不限制
recycle:exclude = *.tmp|*.mp3 #不放入回收站的文件类型
recycle:noversions = *.doc #指定覆盖同名文件的文件类型
完整设置如下:
[公用文件夹]
comment = 公用文件夹
path = /samba/public#共享文件夹路径
read only = no#共享文件夹是否是只读
valid users = @kfb,root #用@指定可访问的用户组,不同组和用户之前用","分开
#指定用户建立文件或目录时的默认权限
create mask = 0660
directory mode = 2770force create mode = 0660
force directory mode = 2770
#禁止上传的文件
veto files = /*.mp3/*.mp4/*.rmvb/*.wma/*.exe/*.bat/*.dll/*.avi/*.rar
#回收站设置
vfs object = recycle
recycle:repository = /samba/deleted/public
recycle:keeptree = Yes
recycle:versions = Yes
recycle:maxsixe = 0
recycle:exclude = *.tmp|*.mp3
recycle:noversions = *.doc
注意事项:
1.回收站文件夹的用户和用户组设置, 权限设置要和共享文件夹的设置是一样的, 如果不一致被删除的文件是无法保存到回收站文件夹
2.如果maxsize设置为0, 那么回收站的文件需要管理员手工去删除. 当然, 可以将删除文件的任务交给计划任务去完成,如:
vim /etc/crontab
30 8 * * * root find /samba/deleted/ -mtime +30 -exec rm -rf {} \;
上面的设置就是每天8:30 删除回收站内大于30天的文件3.每个共享文件夹要单独设置一个回收站文件, 避免同名文件覆盖,同时也方便管理和查找.
------------------------------------分割线------------------------------------
如何在Ubuntu 14.04中使用Samba共享文件
VMWare 虚拟机 Ubuntu 双网卡 访问 samba 速度 翻倍
Samba文件共享服务器加入Windows Server 2003域
CentOS 6.2 下Samba 服务的配置
Win7+VMware+Fedora18 Samba服务器的搭建图解
------------------------------------分割线------------------------------------