
He estado intentando eliminar un directorio de un servidor centos rm -Rf /root/FFDC
durante las últimas 15 horas y estoy teniendo grandes dificultades. No puedo hacer una lista de directorios porque bloquea el sistema (¿demasiados archivos?), pero lo que puedo ver es que el tamaño del directorio no es el habitual de 4096 bytes, ¡sino de 488 MB!
[root@IS-11034 ~]# ls -al
total 11760008
drwxr-x--- 31 root root 4096 Aug 10 18:28 .
drwxr-xr-x 25 root root 4096 Aug 10 16:50 ..
drwxr-xr-x 2 root root 488701952 Aug 11 12:20 FFDC
Revisé los inodos y todo parece estar bien. Revisé la parte superior y rm
sigo usando la CPU después de 15 horas al 0,7%. El tipo de sistema de archivos es ext3.
No tengo ni idea de adónde ir ahora aparte de la copia de seguridad y el formateo.
Respuesta1
¿Es incluso ls -1f /root/FFDC
lento? Con -1f la salida no se ordenará y los detalles del archivo quedarán fuera.
Si el ls anterior se ejecuta rápido, ¿tal vez algo así find /root/FFDC | xargs rm -vf
sería más rápido? Una normal rm -rf
podría realizar todo tipo de recursividad que find
PODRÍA poder omitir. O entonces no.
¿Su sistema de archivos está montado consincronizar¿opción? Si es así, entonces el rendimiento de escritura/eliminación es terriblemente más lento de lo que podría ser conasíncrono. En caso de duda, puede intentarlo mount -o remount,async /
(o mount -o remount,async /root
si es un sistema de archivos independiente para usted).
Respuesta2
¿Ha considerado desmontar el sistema de archivos y luego ejecutar e2fsck para verificar si hay errores en el sistema de archivos? Intentaría esto antes de realizar la copia de seguridad, formatear y restaurar.
Respuesta3
ejecutar fsck en el sistema de archivos solucionará el problema. Suele ocurrir cuando un directorio solía contener muchos archivos pero ahora ya no los contiene. El tamaño del directorio se da como un número enorme y el rendimiento se ve afectado.
Respuesta4
No estoy seguro fsck(8)
de que reorganice los directorios, puede probar con la -D
bandera (como se describe en e2fsck(8)
). Si no es así, y si realmente no hay millones de archivos en ese directorio, tal vez algo como lo siguiente proporcione un directorio de tamaño razonable:
cd /root mv FFDC FFCD-old mkdir FFCD # Ajustar permisos en FFDC mv FFDC-old/* FFDC # Verificar/mover cualquier archivo/directorio .xxx en FFDC-old rmdir FFCD-old
Al menos varias versiones de bash obtienen globos como .a[^.]*
incorrectos e incluyen .
y ..
de todos modos, de lo contrario, puede intentar el penúltimo paso comomv FFDC-old/.* FFDC
Los sistemas de archivos como ext3/ext4 manejan directorios esencialmente como listas vinculadas de nodos inamovibles con espacio para el nombre del archivo + número de inodo, cuando un archivo se desvincula, el espacio para el nombre se libera (y debe fusionarse con las entradas vecinas libres, si las hay). Entonces, un directorio tan gigantesco con pocos archivospodercrearse, pero no es fácil. ¿Quizás crear millones de enlaces físicos a los mismos pocos archivos? ¿Crear/eliminar millones de enlaces con nombres cuidadosamente elaborados? Lo que sucedió para crear esto merece ser investigado; ¿Es una broma, algún tipo de mal funcionamiento del sistema de archivos,...?