Centos: Espacio insuficiente en disco

Dentro mis tareas de investigación estaba creando un nuevo usuario en uno de los servidores Centos que disponemos en el centro de investigación. Al establecer la sentencia, el sistema me arrojaba el siguiente error:

# adduser miusuario
adduser: cannot lock /etc/passwd; try again later

Buscando en Internet los enlaces me indicaban que buscara el archivo /etc/passwd.lock y que lo eliminara, pero en el directorio no aparecía ningún archivo *.lock.

Comencé a probar otros comandos, pero saltaban errores; incluso al probar yum arrojó el siguiente error:

[root@localhost etc]# yum update
rpmdb: unable to join the environment
error: db3 error(11) de dbenv->open: Recurso no disponible temporalmente
error: no se pudo abrir índice Packages utilizando db3 - Recurso no disponible temporalmente (11)
error: no se puede abrir la base de datos Packages en /var/lib/rpm
CRITICAL:yum.main:

Lo que me hizo pensar que el error era más complicado. Quise mirar que había ocurrido en los últimos días, así que ejecute lo siguiente:

[root@localhost ~]# history > archivo 
error de escritura: No queda espacio en el dispositivo

Lo que me llevo a pensar que había un problema de espacio en el disco. ¿Qué pudo ocurrir para que el disco se llene? Así que empece a buscar en Internet como ver el tamaño de ficheros y carpetas y efectivamente, la raíz tenía 0% de espacio disponible, ¡50 GB se habían terminado!

Comencé a buscar que directorio o carpeta estaba consumiendo todo el disco, hasta que era la misma carpeta del usuario administrador, /root ocupaba más 40 GB. así que empece la búsqueda de que ocupaba tanto espacio, hasta que lo halle.

[root@localhost ~]# du -bsh .xsession-errors.old 
41G .xsession-errors.old

Un archivo que registra errores en la interfaz gráfica, básicamente un archivo de texto que llego a pesar más de 40 GB.

Borre el archivo y asunto arreglado.

5 pensamientos en “Centos: Espacio insuficiente en disco

  1. Mario A. Pepinós R.

    Estimado Rodrigo,

    Es muy importante este tema tratado ya que en las distribuciones de Linux, es común encontrarse con problemas del tipo: falta de permisos para ejecución de procedimientos, problemas con el espacio de las particiones de Linux, falta de espacio en Discos, ficheros o directorios no encontrados; problemas que el usuario mismo los ha generado por la mala manipulación del sistema o mal desenvolvimiento en el sistema o por parte del sistema. El hecho que casí todo lo hagamos manualmente en Centos conlleva a crear , modificar, actualizar, eliminar archivos del sistema. Y como es constante el cambio de las aplicaciones muchas cosas se vuelven obsoletas, por lo tanto damos lugar a la “basura informática”, la cual el usuario y el sistema no ha sabido tratarla si no más bien acumularla.

    El primer problema grave, es verdad, el espacio insuficiente en Disco.
    Para buscar una solución se debería empezar por verificar la cantidad de espacio disponible en disco, para lo cual ejecutaría en la terminal : $df -h para informarme del espacio disponible en disco y que está siendo utilizado por los sistemas de archivos.

    S.ficheros Tamaño Usados Disp Uso Montado en
    /dev/sda9 50G 8.4G 42G 17% /
    devtmpfs 5.8G 0 5.8G 0% /dev
    tmpfs 5.8G 16M 5.8G 1% /dev/shm
    etc, etc,

    Así de esta manera mi búsqueda del problema se reduce ya que debo indagar en el sistema de archivos cuyo tamaño de uso y porcentaje de uso se relativamente grande.

    El enlace de la siguiente página ofrece información junto con los comandos para resolver problemas
    referentes a los espacios insuficientes en disco.
    http://www.cyberciti.biz/datacenter/linux-unix-bsd-osx-cannot-write-to-hard-disk/

    Ahora para resolver el error referente a la creación de usuarios mostrado a continuación:

    # adduser miusuario
    adduser: cannot lock /etc/passwd; try again later

    En centos u otra distribución de Linux al momento de crear o modificar un usuario, algunos archivos de extensión “.lock ” ó de bloqueo son creados para prevenir la modificación concurrente de esos sistemas de archivos. Los archivos “.lock” son:

    /etc/passwd.lock
    /etc/shadow.lock
    /etc/group.lock
    /etc/gshadow.lock

    La solución es borrar todos estos archivos “.lock” de /etc .
    #rm -rf /etc/passwd.lock
    #rm -rf /etc/shadow.lock e
    etc, etc.

    Finalmente hago un estudio del error provocado por XSESSION-ERRORS
    X, hace referencia al sistema de ventanas X el cual dota una interfaz gráfica a los sistemas Unix.

    El archivo ~ / .xsession-errors se encuentra en el directorio principal. Como su nombre indica, sirve para asegurar los mensajes de error, advertencias y otra en un solo archivo. Si se produce un error en una aplicación, que se ejecuta en el servidor X o desde una terminal, los mensajes de error se almacenan en este archivo. Por lo tanto es un archivo que contiene mucha información acerca de errores y se acumula rápidamente. Tenemos que eliminarlo http://vsido.org/index.php?topic=279.0

    rm ~ / .xsession-errors
    rm ~ / .xession-errors.old

    Responder
  2. Mario A. Pepinós R.

    Estimado Rodrigo,

    Pues sí este tema de espacio insuficiente en disco es muy importante para las personas que usamos alguna distribución de software libre en nuestros sistemas, en internet se encuentra un sin número de posts referente a este tema unos usuarios cuestionan desde Centos otros desde Ubuntu, Debian.

    En las distribuciones de Linux, es común encontrarse con problemas del tipo: falta de permisos para ejecución de procedimientos, problemas con el espacio de las particiones de Linux, falta de espacio en Discos, ficheros o directorios no encontrados; problemas que el usuario mismo los ha generado por la mala manipulación del sistema o mal desenvolvimiento en el sistema. El hecho que casi todo lo hagamos manualmente en Centos conlleva a crear , modificar, actualizar, eliminar archivos del sistema. Y como es constante el cambio de las aplicaciones muchas cosas se vuelven obsoletas, por lo tanto damos lugar a la “basura informática”, la cual el usuario y el sistema no ha sabido tratarla si no más bien acumularla.

    El primer problema grave, es verdad, el espacio insuficiente en Disco.
    Para buscar una solución se debería empezar por verificar la cantidad de espacio disponible en disco, para lo cual ejecutaría en la terminal : $df -h para informarme del espacio disponible en disco y que está siendo utilizado por los sistemas de archivos.

    [root@localhost ~]# df -h

    Así de esta manera mi búsqueda del problema se reduce ya que debo indagar en el sistema de archivos cuyo tamaño de uso y porcentaje de uso se relativamente grande.

    El enlace de la siguiente página ofrece información junto con los comandos para resolver problemas referentes a los espacios insuficientes en disco.
    http://www.cyberciti.biz/datacenter/linux-unix-bsd-osx-cannot-write-to-hard-disk/

    Ahora para resolver el error referente a la creación de usuarios mostrado a continuación:
    #adduser miusuario
    adduser: cannot lock /etc/passwd; try again later

    En Centos u otra distribución de Linux al momento de crear o modificar un usuario, algunos archivos de extensión “.lock ” ó de bloqueo son creados para prevenir la modificación concurrente de esos sistemas de archivos. Los archivos “.lock” son:
    # /etc/passwd.lock
    # /etc/shadow.lock
    # /etc/group.lock
    # /etc/gshadow.lock

    La solución es borrar todos estos archivos “.lock” de /etc .
    #rm -rf /etc/passwd.lock
    #rm -rf /etc/shadow.lock
    etc, etc.

    Finalmente hago un estudio del error provocado por XSESSION-ERRORS
    X, hace referencia al sistema de ventanas X el cual dota una interfaz gráfica a los sistemas Unix.

    El archivo ~ / .xsession-errors se encuentra en el directorio principal. Como su nombre indica, sirve para asegurar los mensajes de error, advertencias y otra en un solo archivo. Si se produce un error en una aplicación, que se ejecuta en el servidor X o desde una terminal, los mensajes de error se almacenan en este archivo. Por lo tanto es un archivo que contiene mucha información acerca de errores y se acumula rápidamente. Tenemos que eliminarlo como lo explica en la siguiente página: http://vsido.org/index.php?topic=279.0
    # rm ~ / .xsession-errors
    # rm ~ / .xsession-errors.old

    Espero haber sido de ayuda y colaborado para el desarrollo
    de este caso de estudio.

    Att. Mario Pepinós

    Responder
  3. Daniel Yangua

    Interesante por lo general siempre buscamos soluciones mas complicadas para problemas faciles de resolver cuando se conoce bien el SO que se maneja

    Responder
  4. Patricio Méndez

    Buenas Noches;
    Pues en primer lugar me parece una gran solución a un problema que puedo ver que tienen varios usuarios, ya que puede encontrar el mismo error con la misma descripción la única variación era el tamaño del archivo xsession-errors.old el cual ciertas veces a llego a pesar mas de 100GB lo cual dejaría sin espacio en la partición de memora la solución mas practica y que hasta ahora a funcionado para todos los usuarios es como dice la eliminación del archivo realizando los siguientes pasos:

    rm /wherever/you/have/.xsession-errors
    ln -s /dev/null /wherever/you/have/.xsession-errors

    que no es mas que lineas de código para la eliminación de este archivo.
    Este tema me pareció muy interesante por el cual también investigue sobre el problema y halle la misma solución en varios foros de ubuntu los cuales adjunto.

    http://askubuntu.com/questions/177058/xsession-errors-file-is-huge-how-can-i-disable

    http://askubuntu.com/questions/314723/why-is-the-xsession-errors-old-file-so-big

    me despido, gracias por la acotación.

    Patricio Méndez

    Responder
    1. Pedro Ramírez

      Es impresionante como un archivo texto puede llegar a ser tan pesado en comparación al peso que puede llegar a tener un archivo del usuario.

      Me parece muy oportuna tu acotación Patricio, sin embargo al investigar sobre el tema el archivo xsession-errors.old sigue siendo reescrito y en ciertos foros declaran que la redirección de los accesos .xsession-errors a /dev/null no ha solucionado el problema cuando se trata de servidores. Creo que puede ser oportuno la utilización de un demonio que elimine el archivo automáticamente cada cierto tiempo, dependiendo de las necesidades del usuario final.

      Lo cual se realizaría mediante cron:
      crontab -e
      @hourly rm -rf /path/to/xsession/files/.xsession-errors*

      Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *