Debido a mi profesión, tengo que tratar con problemas que van surgiendo en el diario, que gracias al conocimiento adquirido a lo largo de los años y a la ayuda de la búsqueda de problemas similares en Internet, finalmente he podido solucionar.
El problema surge cuando tenemos un error y no sabemos de dónde puede provenir.
En mi caso particular me pasaba lo siguiente:
– El servidor dedicado donde alojo las webs, no me permitía reiniciar el proceso me daba errores del tipo “no space left on device” , “write failed” y “user block limit reached”
– Era bastante extraño este error, ya que, el disco duro es de 1TB y comprobándolo, tenía la siguiente la información:
~ # df S.ficheros Bloques de 1K Usado Dispon Uso% Montado en /dev/md/1 10403064 3252248 6626532 33% / udev 4035092 208 4034884 1% /dev /dev/md/2 958137332 49863180 859986824 6% /home shm 4035092 0 4035092 0% /dev/shm
– Curioso, ejecutando el comando df pude observar que tan solo tenía ocupado un 33%.
– Indagando, encontré que el fallo se produjo por una saturación de i-nodos , ejecutando el comando df -i obtuve la siguiente información
~ # df -i S.ficheros Nodos-i NUsados NLibres NUso% Montado en /dev/md/1 655360 655360 0 100% / udev 1008773 5418 1003355 1% /dev /dev/md/2 60366848 910175 59456673 2% /home shm 1008773 1 1008772 1% /dev/shm
– Generalmente esto se produce por la creación de infinidad de ficheros pequeños dentro del directorio, en este caso, raíz /.
– ¿Cómo encontrar dónde se encuentran dichos ficheros? Ejecutando
find . -printf "%i\n" | sort -u | wc -l
– De esta forma obtendremos el número de ficheros de cada directorio, empezaremos por el principal / y luego por los directorios que haya , hasta encontrar el que contiene más ficheros.
– En mi caso particular el problema surgió por el proceso qmail, el cual había generado (y generaba) de forma constante una serie de emails que insertaba continuamente en la cola de correos (queue).
– Para solucionar este problema, realicé los siguientes pasos:
- Descargué queue-repair de la web http://pyropus.ca/software/queue-repair/
- Lo descomprimí, en mi caso dentro del directorio /root/temp/
- Y cree un script en bash con los siguientes parámetros
#!/bin/bash /etc/init.d/qmail stop rm -rf /var/qmail/queue /root/temp/queue-repair-0.9.0/queue_repair.py -c -s 23 --no-bigtodo . /root/temp/queue-repair-0.9.0/queue_repair.py -c -s 23 --no-bigtodo /var/qmail rm -rf /var/log/qmail/lock /etc/init.d/qmail start
De esta forma, cada vez que tengo algún problema con la cola de correo qmail, ejecutando el script, realiza todos los pasos necesarios para solucionarlo.
Para comprobar que de nuevo funciona correctamente, utilizo el siguiente comando para enviarme un correo desde qmail
# echo test | mail emailquesea@loquesea.com # tail -f /var/log/qmail/current
Espero que os sirva de ayuda y que encontréis esta solución sin perder tanto tiempo como el que invertí yo.
Detectar spam de qmail producido por malware en web | Jose Alberto Benítez Andrades
Oct 3, 2013 -
[…] Problema de inodos llenos en linux | Jose Alberto Benítez Andrades […]
Problema y solución de hackeo al servidor de DNS: named query (cache) client denied | Jose Alberto Benítez Andrades
Nov 29, 2013 -
[…] Os he explicado ya cómo solucionar un bug del plugin JCE Editor de la plataforma Joomla, mediante el cual se podía acceder al servidor y ejecutar cualquier script que quisiéramos. En mi caso concreto, dicho script se encargaba de intentar enviar emails desde el servicio qmail saturando así la cola y generando tantos ficheros que finalmente el disco duro se saturaba completando el 100% de los inodos disponibles. […]
luis fernando
Oct 11, 2016 -
quisiera saber acerca sobre que hace el comando ” ncheck ” ? , ya que no hay información sobre este, lo único que se es que sirve para buscar archivos por numero de inodo, pero me interesa saber mas sobre las características y funciones de este comando.
API PSD2
Ene 15, 2018 -
Tu artículo me ha ahorrado mucho tiempo. Muchas gracias.