Si quiero ver todos los archivos de registro relevantes de mi servidor apache2 a la vez, uso
tail -f /var/kunden/logs/*log /var/kunden/logs/*log /var/log/apache2/*log |grep -v robots|grep -v favicon
Pero dado que esos son demasiados archivos por ahora, me gustaría aumentar ese límite.
¿Cómo puedo aumentarlo para una sesión ssh? ¿Y cómo podría aumentarlo globalmente en todo el sistema?
Puedo ver que el límite de archivos abiertos es 1024 en mi máquina:
ulimit -n
1024

-Flugar de hacerlo-fpara que los registros se vuelvan a abrir al rotarlos.Respuestas:
Es importante saber que hay dos tipos de límites:
Solución para una sola sesión
En el shell establece el límite suave:
Este ejemplo elevará el límite real a 2048, pero el comando tendrá éxito solo si el límite rígido (check:)
ulimit -Hnes el mismo o mayor. Si necesita valores más altos, aumente el límite rígido utilizando uno de los métodos a continuación. Los límites se establecen por proceso y los procesos recién generados los heredan, por lo que todo lo que ejecute después de este comando en el mismo shell tendrá los nuevos límites.Cambiar el límite duro en una sola sesión
Esto no es fácil porque solo la raíz puede cambiar un límite estricto y después de cambiar a la raíz, debe volver al usuario original. Aquí está la solución con
sudo:Solución para todo el sistema
En Debian y en muchos otros sistemas que usan
pam_limits, puede establecer los límites de todo el sistema en/etc/security/limits.confy en archivos/etc/security/limits.d. El archivo conf contiene descripción. Líneas de ejemplo:Esto establecerá el límite rígido y el límite flexible predeterminado para los usuarios del grupo
webadminsdespués de iniciar sesión.Otros limites
El valor límite estricto está limitado por el límite global del valor de los descriptores de archivos abiertos,
/proc/sys/fs/file-maxque es bastante alto por defecto en las distribuciones modernas de Linux. Este valor está limitado por elNR_OPENvalor utilizado durante la compilación del núcleo.¿No hay una mejor solución?
Tal vez podría verificar si todos los
*logarchivos que alimentatail -fson archivos realmente activos que necesitan ser monitoreados. Es posible que algunos de ellos ya estén cerrados para iniciar sesión y simplemente puede abrir una cantidad menor de archivos.fuente
sususu -c "ulimit -Hn 6000 ; su $USER"ulimit -Hn 6000; ulimit -Sn 6000/etc/limits.*. Estos límites se aplican cada vez quepam_limits.sose llama al módulo PAM . Normalmente es al comienzo de una sesión. Por ejemplo, en Ubuntu 14.04 es en estas herramientas / comandos:cron,login(texto de la consola de inicio de sesión),lightdm(el nombre de usuario GUI),su. Puede establecer dónde sepam_limitsusa/etc/pam.*. Ver por ejemplo: faqs.org/docs/securing/chap5sec44.htmlTenía la advertencia de PHP en mi error Apache.log:
Entonces descubrí que apache establece este valor individualmente al iniciar (en mi Ubuntu 14.04). Está configurado en
/etc/apache2/envvars. Dice:así que tuve que ajustar la tercera línea.
fuente