Se eu quiser ver todos os arquivos de log relevantes do meu servidor apache2 de uma só vez, eu uso
tail -f /var/kunden/logs/*log /var/kunden/logs/*log /var/log/apache2/*log |grep -v robots|grep -v favicon
Mas como esses arquivos são muitos agora, gostaria de aumentar esse limite.
Como posso aumentá-lo para uma sessão ssh? E como eu poderia aumentá-lo globalmente em todo o sistema?
Eu posso ver que o limite de arquivos abertos é 1024 na minha máquina:
ulimit -n
1024
-F
vez de,-f
para que os logs sejam reabertos quando rotacionados.Respostas:
É importante saber que existem dois tipos de limites:
Solução para uma única sessão
No shell, defina o limite flexível:
Este exemplo aumentará o limite real para 2048, mas o comando será bem-sucedido apenas se o limite máximo (verificação
ulimit -Hn
:) for igual ou superior. Se você precisar de valores mais altos, aumente o limite rígido usando um dos métodos abaixo. Os limites são definidos por processo e são herdados por processos gerados recentemente; portanto, qualquer coisa que você execute após esse comando no mesmo shell terá os novos limites.Alterando o limite rígido em uma única sessão
Isso não é fácil porque apenas o root pode alterar um limite rígido e, depois de mudar para o root, você precisa voltar ao usuário original. Aqui está a solução com
sudo
:Solução para todo o sistema
No Debian e em muitos outros sistemas que
pam_limits
você usa, você pode definir os limites de todo o sistema/etc/security/limits.conf
nos arquivos/etc/security/limits.d
. O arquivo conf contém uma descrição. Linhas de exemplo:Isso definirá o limite máximo e o limite flexível padrão para usuários do grupo
webadmins
após o login.Outros limites
O valor do limite rígido é limitado pelo limite global do valor dos descritores de arquivo aberto, no
/proc/sys/fs/file-max
qual é bastante alto por padrão nas distribuições modernas do Linux. Este valor é limitado peloNR_OPEN
valor usado durante a compilação do kernel.Não existe uma solução melhor?
Talvez você possa verificar se todos os
*log
arquivos que você alimentatail -f
são realmente arquivos ativos que precisam ser monitorados. É possível que alguns deles já estejam fechados para registro e você pode simplesmente abrir um número menor de arquivos.fonte
su
a raiz esu
volta para o usuário:su -c "ulimit -Hn 6000 ; su $USER"
ulimit -Hn 6000; ulimit -Sn 6000
como root, então/etc/limits.*
. Esses limites são aplicados sempre que o módulo PAMpam_limits.so
é chamado. Normalmente, é no início de uma sessão. Por exemplo, no Ubuntu 14.04 é nestas ferramentas / comandos:cron
,login
(texto de login console),lightdm
(o login GUI),su
. Você pode definir onde épam_limits
usado/etc/pam.*
. Veja por exemplo: faqs.org/docs/securing/chap5sec44.htmlEu tive o aviso PHP no meu error.log do Apache:
Então eu descobri que o apache define esse valor individualmente ao iniciar (no meu Ubuntu 14.04). Está configurado em
/etc/apache2/envvars
. Diz:então eu tive que ajustar a terceira linha.
fonte