df no muestra espacio correctamente después de borrar un fichero

En mi día a día de trabajo con servidores GNU Linux, me encuentro con nuevos casos, que dificilmente te explican cuando estudias administración de sistemas o cuando cursas la certificación de turno. Recientemente me he encontrado con el caso de una alerta en un servidor, por ocupación de espacio en disco. El caso es que una vez encontramos el fichero culpable de la ocupación, utilizando la combinación de comandos du y find, que ya expliqué en su día, procedimos aliminarlo. Aún así utilizando el comando df, nos seguía mostrando que el disco seguía lleno. Paso a relatar la solución a este poltergeist.

Solventar df no muestra espacio en disco correctamente, después de borrar un fichero

El problema es debido que aunque nosotros hayamos eliminado, en teoría el fichero, este sigue existiendo, ya que todavía hay procesos en el sistema que lo utilizan. Podemos comprobarlo utilizando la herramienta lsof

De la siguiente manera:

  1. lsof +L1

Un ejemplo del resultado sería el siguiente:

  1. [root@davidochobits ~]# lsof +L1
  2. COMMAND    PID    USER   FD   TYPE DEVICE   SIZE/OFF NLINK      NODE NAME
  3. apache   1009    root    1w   REG    8,1 7342581896     0  69943199 /var/log/httpd/console.log (deleted)
  4. apache   1009    root    2w   REG    8,1 7342581896     0  69943199 /var/log/httpd/console.log (deleted

Observamos entre paréntesis la mención a «deleted»

Otra opción sería utilizando el comando ps, de la siguiente manera:

  1. ps -ef | grep -i "nombre fichero"

Una vez localizado el proceso o procesos, los podemos «matar» mediante el comando kill

  1. kill -9 "numero de procesos"

Añadiendo el parámetro «-9» le decimos que queremos matar también todos sus procesos «hijos»

Y esto es todo. Espero que en algún momento os sea de utilidad. Nos vamos leyendo ^.^

Fuentes | serverfault.com