samba中的testparm可能会产生以下消息:
rlimit_max: rlimit_max (8192) below minimum Windows limit (16384)
这似乎是通过使用此Linux命令ulimit -n 16384增加最大打开文件限制来解决的.
对于典型的Samba盒子,这是一个安全的改变吗?该设置应该存储在何处,以便在启动时可供samba服务使用?
解决方法
首先,这只是一个警告.在MS Windows上,客户端和服务器上的文件处理程序数必须相同,否则当e时,您将看到“打开的文件太多”消息. G.通过网络复制文件.最近的Samba版本可以自行处理.
但是,如果要删除此警告,可以通过更改本地文件限制来执行此操作.区分本地(用户或会话)限制和全局(系统范围)限制始终是有用的.检查全局限制
cat /proc/sys/fs/file-max
您的全球限制远远超出当地限制的可能性很大.我认为典型的GNU / Linux限制在100k范围内,我已经很久没看过了.您可以通过执行临时更改此值
sysctl -w fs.file-max=n
或永久编辑/etc/sysctl.conf并运行sysctl -p.
要检查您的本地限制,请切换到相关用户,例如: G.桑巴,并运行
ulimit -Hn ulimit -Sn
这将显示本地会话的硬限制和软限制.硬限制由系统强制执行,而软限制由本地会话强制执行.如有必要,您可以将本地软限制增加到全局硬限制.
您可以通过运行临时更改限制
ulimit -Hn n ulimit -Sn m
或者您可以通过/etc/security/limits.conf设置用户限制,甚至可以指定适用哪些用户限制,例如: G.
samba soft nofile 16384 samba hard nofile 32768
与往常一样,文件和命令的手册页提供了更多的洞察力.希望有所帮助.