Tengo un disco SCSI en un servidor (hardware Raid 1), 32G, ext3 fileytem. dfme dice que el disco está 100% lleno. Si elimino 1G, esto se muestra correctamente.
Sin embargo, si ejecuto a du -h -x /, dume dice que solo se usan 12G (lo uso -xdebido a algunas monturas Samba).
Entonces, mi pregunta no es sobre diferencias sutiles entre los comandos du y df, sino sobre cómo puedo averiguar qué causa esta gran diferencia.
Reinicié la máquina por un fsck que no tenía errores. ¿Debo correr badblocks? lsofme muestra que no hay archivos eliminados abiertos, lost+foundestá vacío y no hay una declaración obvia de advertencia / error / falla en el archivo de mensajes.
No dude en solicitar más detalles de la configuración.
linux
ext3
disk-space-utilization
scsi
initall
fuente
fuente

Respuestas:
Verifique los archivos ubicados debajo de los puntos de montaje. Con frecuencia, si monta un directorio (digamos un sambafs) en un sistema de archivos que ya tenía un archivo o directorios, pierde la capacidad de ver esos archivos, pero aún así están consumiendo espacio en el disco subyacente. He tenido copias de archivos mientras estaba en modo de usuario único volcado de archivos en directorios que no podía ver, excepto en modo de usuario único (debido a que otros sistemas de directorios se montan encima de ellos).
fuente
Acabo de tropezar con esta página al intentar localizar un problema en un servidor local.
En mi caso, el
df -hydu -shno coinciden en un 50% del tamaño del disco duro.Esto fue causado por apache (httpd) que mantenía grandes archivos de registro en la memoria que habían sido eliminados del disco.
Esto se rastreó ejecutando
lsof | grep "/var" | grep deleteddónde/varestaba la partición que necesitaba limpiar.La salida mostró líneas como esta:
httpd 32617 nobody 106w REG 9,4 1835222944 688166 /var/log/apache/awstats_log (deleted)La situación se resolvió reiniciando apache (
service httpd restart) y eliminó 2 gb de espacio en disco, permitiendo que se borren los bloqueos de los archivos eliminados.fuente
kill -9 'pid'que liberar las cerraduras. por ejemplo: para su httpd lo hubiera sidokill -9 32617.lsofcomosudoo no todos los descriptores de archivos abiertos se mostrarásudo truncate -s0 /proc/(h2 PID)/(descriptor number obtained from ls /proc/h2pid/fd).httpdespacio de reinicio no se libera. Cuando corrí/etc/init.d/rsyslog restartfuncionó: Dlsof -a +L1 /var, donde-asignifica Y todas las condiciones (el valor predeterminado es OR),+L1significa enumerar solo los archivos con un recuento de enlaces inferior a 1 (es decir, archivos eliminados con descriptores de archivo abiertos) y/varrestringir a los archivos bajo ese punto de montajeEstoy de acuerdo con la respuesta de OldTroll como la causa más probable de su espacio "perdido".
En Linux, puede volver a montar fácilmente toda la partición raíz (o cualquier otra partición) en otro lugar de su sistema de archivos, por ejemplo, / mnt, simplemente emita un
entonces puedes hacer un
y ver qué usa tu espacio.
PD: lo siento por agregar una nueva respuesta y no un comentario, pero necesitaba un poco de formato para que esta publicación sea legible.
fuente
/var/lib/docker/aufs/diff/mount -o bind / /mntme dio una información adicional que estaba buscando. ¡Gracias!Mira lo que
df -idice. Puede ser que se haya quedado sin inodos, lo que podría suceder si hay una gran cantidad de archivos pequeños en ese sistema de archivos, que utiliza todos los inodos disponibles sin consumir todo el espacio disponible.fuente
du -sel mismo subárbol, obtendrá una buena idea si ese es el caso aquí.En mi caso, esto tenía que ver con grandes archivos borrados. Fue bastante doloroso de resolver antes de encontrar esta página, que me puso en el camino correcto.
Finalmente resolví el problema mediante el uso
lsof | grep deleted, que me mostró qué programa contenía dos archivos de registro muy grandes (un total de 5 GB de mi partición raíz de 8 GB disponible).fuente
Los archivos abiertos por un programa en realidad no desaparecen (dejan de consumir espacio en disco) cuando los elimina, desaparecen cuando el programa los cierra. Un programa puede tener un archivo temporal enorme que usted (y du) no puede ver. Si es un programa zombie, es posible que deba reiniciar para borrar esos archivos.
fuente
kill -9 'pid'para liberar las cerraduras y recuperar el espacio en disco.Pruebe esto para ver si un proceso inactivo / bloqueado está bloqueado mientras sigue escribiendo en el disco: lsof | grep "/ mnt"
Luego intente eliminar cualquier PID que esté atascado (especialmente busque líneas que terminen en "(eliminado"))
fuente
¡Este es el método más fácil que he encontrado hasta la fecha para encontrar archivos grandes!
Aquí hay un ejemplo si su montaje raíz está lleno / (montaje / raíz) Ejemplo:
cd / (para que estés en la raíz)
ls | xargs du -hs
Salida de ejemplo:
entonces notarías que la tienda es grande, haz un cd / store
y corre de nuevo
ls | xargs du -hs
en este caso el directorio vms es el espacio hog.
fuente
baobab? (ver marzocca.net/linux/baobab/baobab-getting-started.html )ls+xargsparece excesivo,du -sh /*funciona bien soloPara mí, necesitaba ejecutar
sudo duya que había una gran cantidad de archivos acoplables debajo de los/var/lib/dockercuales un usuario que no es sudo no tiene permiso para leer.fuente
Una posibilidad más a tener en cuenta: está casi garantizado que verá una gran discrepancia si está usando Docker y ejecuta df / du dentro de un contenedor que está utilizando montajes de volumen. En el caso de un directorio montado en un volumen en el host docker, df informará los totales de df del HOST. Esto es obvio si lo piensa, pero cuando reciba un informe de un "contenedor fuera de control que llena el disco", asegúrese de verificar el consumo del espacio de archivos del contenedor con algo como esto
du -hs <dir>.fuente
Así que también tuve este problema en Centos 7 y encontré una solución después de probar un montón de cosas como bleachbit y limpieza / usr y / var a pesar de que solo mostraban alrededor de 7G cada una. Todavía mostraba 50G de 50G utilizados en la partición raíz, pero solo mostraba 9G de uso de archivos. Ejecuté un cd ubuntu en vivo y desmonté la partición 50G ofensiva, abrí la terminal y ejecuté xfs_check y xfs_repair en la partición. Luego volví a montar la partición y mi directorio perdido + encontrado se expandió a 40G. Clasifiqué el perdido + encontrado por tamaño y encontré un archivo de registro de texto de 38G para steam que eventualmente solo repitió un error de mp3. Eliminé el archivo grande y ahora tengo espacio y el uso de mis discos está de acuerdo con el tamaño de mi partición raíz. Todavía me gustaría saber cómo hacer que el registro de vapor no vuelva a crecer tanto.
fuente
xfs_fsrsolucionó este problema para nosotrossi el disco montado es una carpeta compartida en una máquina con Windows, entonces parece que df mostrará el tamaño y el uso del disco de todo el disco de Windows, pero du mostrará solo la parte del disco a la que tiene acceso también. (y está montado). en este caso, el problema debe solucionarse en la máquina con Windows.
fuente
Algo similar nos sucedió en producción, el uso del disco fue del 98%. Hizo la siguiente investigación:
a)
df -ipara verificar el uso del inodo, el uso del inodo fue del 6%, por lo que no hay archivos mucho más pequeñosb) Montaje
rooty comprobación de archivos ocultos. No se pudieron presentar archivos adicionales .duLos resultados fueron los mismos que antes del montaje.c) Finalmente, se verificaron los
nginxregistros. Se configuró para escribir en el disco, pero un desarrollador eliminó el archivo de registro directamente, longinxque provocó que todos los registros se mantuvieran en la memoria. Como el archivo/var/log/nginx/access.logse eliminó del disco,rmno se pudo ver,dupero se accedió al archivonginxy, por lo tanto, todavía se mantuvo abiertofuente
Tuve el mismo problema que se menciona en este tema, pero en un VPS. Así que probé todo lo que se describe en este tema pero sin éxito. La solución fue un contacto de soporte con nuestro proveedor de VPS que realizó un nuevo cálculo de cuotas y corrigió la diferencia de espacio de
df -hydu-sh /.fuente
Hoy me encontré con este problema en un cuadro de FreeBSD. El problema era que era un artefacto de
vi(novim, no estoy seguro sivimcrearía este problema). El archivo consumía espacio pero no se había escrito completamente en el disco.Puede verificar eso con:
Esto examina todos los archivos abiertos y los ordena (numéricamente
-n) en la octava columna (clave,-k8), que muestra los últimos diez elementos.En mi caso, la entrada final (más grande) se veía así:
Esto significaba que el proceso (PID) 12345 consumía 1.46G (la octava columna dividida por 1024³) de disco a pesar de la falta de
dunotarlo.vies horrible al ver archivos extremadamente grandes; incluso 100 MB es grande para ello. 1.5G (o por grande que sea ese archivo) es ridículo.La solución era
sudo kill -HUP 12345(si eso no funcionara,sudo kill 12345y si eso también falla, lo temidokill -9entraría en juego).Evite los editores de texto en archivos grandes. Ejemplos de soluciones para el desnatado rápido:
Suponiendo longitudes de línea razonables:
{ head -n1000 big.log; tail -n1000 big.log } |vim -R -wc -l big.log |awk -v n=2000 'NR==FNR{L=$1;next}FNR%int(L/n)==1' - big.log |vim -R -Asumiendo líneas irrazonablemente grandes:
{ head -c8000 big.log; tail -c8000 big.log } |vim -R -Estos se usan
vim -Ren lugar deviewporquevimcasi siempre es mejor ... cuando está instalado. Siéntase libre de colocarlos en su lugarviewo en suvi -Rlugar.Si va a abrir un archivo tan grande para editar en realidad, considerar
sedoawko algún otro enfoque programático.fuente
compruebe si su servidor tiene instalado el agente ossec. O algún proceso está utilizando los archivos de registro eliminados. En mi hace un tiempo era agente ossec.
fuente
compruebe el / lost + found, tenía un sistema (centos 7) y algunos de los archivos en / lost + found ocuparon todo el espacio.
fuente