testparm no samba pode produzir esta mensagem:
rlimit_max: rlimit_max (8192) below minimum Windows limit (16384)
Isso parece ser resolvido aumentando o limite máximo de arquivos abertos usando este comando do Linux ulimit -n 16384
.
Esta é uma mudança segura para a caixa tipicamente Samba? Onde essa configuração deve ser armazenada para que fique disponível para o serviço samba na inicialização?
Responder1
Em primeiro lugar, isto é apenas um aviso. No MS Windows, o número de manipuladores de arquivos no cliente e no servidor deve ser idêntico; caso contrário, você verá a mensagem "muitos arquivos abertos" ao, por exemplo, copiar arquivos pela rede. Versões mais recentes do Samba cuidam disso sozinhas.
No entanto, se quiser remover esse aviso, você pode fazer isso alterando os limites de arquivos locais. É sempre útil distinguir limites locais (usuário ou sessão) e limites globais (em todo o sistema). Verifique seus limites globais com
cat /proc/sys/fs/file-max
Há boas chances de que seus limites globais excedam em muito os limites locais. Acho que o limite típico do GNU/Linux está na faixa de 100k, não vejo há muito tempo. Você pode alterar esse valor temporariamente executando
sysctl -w fs.file-max=n
ou permanentemente editando /etc/sysctl.conf
e executando sysctl -p
.
Para verificar seus limites locais, mude para o usuário em questão, por exemplo, samba, e execute
ulimit -Hn
ulimit -Sn
Isso mostrará os limites rígidos e flexíveis para a sessão local. O limite rígido é aplicado pelo sistema, enquanto o limite flexível é aplicado pela sessão local. Você pode aumentar o limite flexível local até o limite rígido global, se necessário.
Você pode alterar os limites temporariamente executando
ulimit -Hn n
ulimit -Sn m
ou você pode definir limites de usuário /etc/security/limits.conf
e até mesmo especificar para quais usuários quais limites se aplicam, por exemplo
samba soft nofile 16384
samba hard nofile 32768
Como sempre, as páginas de manual dos arquivos e dos comandos oferecem muito mais informações. Espero que ajude.
Responder2
O limite é obtido de /etc/security/limits.conf.
você mostra seu limite real com ulimit -n
você pode alterá-lo editando (ou adicionando) linha
* - nofile 16385
e recarregue seu parâmetro env (ou saia do shell e entre novamente no shell).
Responder3
É simples, mas acredito que muita gente perde tempo com essa pergunta (como eu haha).
Precisamos configurar o limite do parâmetroNENHUM ARQUIVOem "/etc/security/limits.conf" ou em outro arquivo alternativo como "/etc/security/limits.d/limit-file.conf" assim:
* - nofile 16384
O problema é que esta configuração não se aplica à sessão atual, precisamos sair e fazer login para aplicar as alterações, portanto nossos testes com TESPARM sempre falham.
Se não quiser reiniciar a sessão, aplique este comando e resolva este problema:
ulimit -n 16384
Espero que isto ajude!
Responder4
Um erro de digitação no /etc/samba/smb.conf
arquivo pode gerar esse tipo de erro. Eu segui issolinke reexaminei o meu apenas para descobrir que meu problema era um erro de digitação: "sim" em vez de "sim".