Entonces, un cliente mío recibió un correo electrónico de Linode hoy diciendo que su servidor estaba haciendo explotar el servicio de respaldo de Linode. ¿Por qué? Demasiados archivos Me reí y luego corrí:
# df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/xvda 2.5M 2.4M 91K 97% /
Mierda. 2,4 millones de inodos en uso. ¿Qué demonios ha estado pasando?
He buscado los sospechosos obvios ( /var/{log,cache}
y el directorio desde donde están alojados todos los sitios) pero no encuentro nada realmente sospechoso. En algún lugar de esta bestia, estoy seguro de que hay un directorio que contiene un par de millones de archivos.
Para el contexto uno de mis mis servidores ocupados utiliza 200k inodos y mi escritorio (una vieja instalación con más de 4 TB de almacenamiento ocasión) es sólo algo más de un millón. Hay un problema.
Entonces mi pregunta es, ¿cómo puedo encontrar dónde está el problema? ¿Hay un du
para inodes?
fuente
Respuestas:
Verifique
/lost+found
en caso de que haya un problema de disco y se haya detectado una gran cantidad de basura como archivos separados, posiblemente de forma incorrecta.Verifique
iostat
si alguna aplicación todavía produce archivos como locos.find / -xdev -type d -size +100k
le dirá si hay un directorio que usa más de 100kB de espacio en disco. Ese sería un directorio que contiene muchos archivos, o que contenía muchos archivos en el pasado. Es posible que desee ajustar la figura del tamaño.No creo que haya una combinación de opciones para GNU
du
para que cuente 1 por entrada de directorio. Puede hacerlo produciendo la lista de archivosfind
y contando un poco en awk. Aquí hay unadu
para inodes. Probado mínimamente, no intenta hacer frente a los nombres de archivo que contienen nuevas líneas.Uso:
du-inodes /
. Imprime una lista de directorios no vacíos con el recuento total de entradas en ellos y sus subdirectorios de forma recursiva. Redireccione la salida a un archivo y revísela a su gusto.sort -k1nr <root.du-inodes | head
te dirá los mayores delincuentes.fuente
awk: line 2: find: regular expression compile failed (bad class -- [], [^] or [) [^ awk: line 2: syntax error at or near ] `/tmp/tmpw99dhs': Permission denied
Puede verificar con este script:
Esto imprime los 10 subdirectorios principales por conteo de archivos. Si desea una x superior, cambie
head
conhead -n x
, dondex
es un número natural mayor que 0.Para obtener resultados 100% seguros, ejecute este script con privilegios de root:
fuente
10: read: Illegal option -d
... borró la-d
bandera de laread
esperanza de que no pasara nada malo. Te avisará cuando termine de ejecutarse ...A menudo más rápido que buscar, si su base de datos de localización está actualizada:
Esto descarga toda la base de datos de localización, elimina todo lo que haya pasado el último '/' en la ruta, luego la ordenación y "uniq -c" le dan el número de archivos / directorios por directorio. "sort -n" se canalizó a tail para obtener los diez directorios con más cosas en ellos.
fuente
find /path/to/parent -xdev > filelist
primero, luego dirija directamente para leer la entrada de esa lista.Otro sugiere:
http://www.iasptk.com/20314-ubuntu-find-large-files-fast-from-command-line
Use estas búsquedas para encontrar los archivos más grandes en su servidor.
Encuentra archivos de más de 1 GB
Encuentra archivos de más de 100 MB
Encuentra archivos de más de 10 MB
La primera parte es el comando de búsqueda que utiliza el indicador "-size" para buscar archivos de diferentes tamaños medidos en kilobytes.
El último bit al final que comienza con "-exec" permite especificar un comando que queremos ejecutar en cada archivo que encontramos. Aquí el comando "ls -lh" para incluir toda la información que se ve al enumerar el contenido de un directorio. La h hacia el final es especialmente útil, ya que imprime el tamaño de cada archivo en un formato legible para humanos.
fuente
Esto funcionó para mí cuando el otro falló en Android a través del shell:
fuente
Me gusta usar algo como
du --inodes -d 1
encontrar un directorio que recursivamente o directamente contenga muchos archivos.También me gusta esta respuesta: https://unix.stackexchange.com/a/123052
fuente