FindLargedir-go es un truco rápido destinado a ayudar a identificar directorios de "agujeros negros" en un sistema de archivos que tenga más de 100,000 entradas en una sola estructura plana. El programa intentará identificar cualquier número de tales eventos e informar sobre ellos.
El programa no seguirá los enlaces simbólicos y requiere que los permisos de R/W puedan calcular un tamaño de inodo de directorio al número de la relación de entradas y estimar una serie de entradas en un directorio sin contarlas realmente. Si bien este método es solo una aproximación del número real de entradas en un directorio, es lo suficientemente bueno para escanear rápidamente los directorios ofensivos.
-a ) puede causar una E/S excesiva y un uso excesivo de memoria; Solo use cuando sea apropiado-7 parámetro) debido a las diferencias en la estructura de estadísticas del núcleo de OneFS-x parámetro) Hay dos formas de instalar findLargedir -go: Hay dos formas de instalar FindLargedir-go: descargue su sabor preferido de la página de versiones e instale manualmente.
go get https://github.com/dkorunic/findlargedir-goUso:
Usage: findlargedir [-7ahopx] [-c value] [-t value] [parameters ...]
-7, --isilon enable support for EMC Isilon OneFS 7.x
-a, --accurate full accuracy when checking large directories
-c, --testcount=value
set initial file count for inode size testing phase (default
20000)
-h, --help display help
-o, --onefilesystem
never cross filesystem boundaries
-p, --progress display progress status every 5 minutes
-t, --threshold=value
set file count threshold for alerting (default 50000)
-x, --cloexec disable open O_CLOEXEC for really ancient Unix systems Cuando use el modo preciso ( -a parámetro), tenga cuidado de que las grandes búsquedas de directorio detendrán el proceso por completo por períodos prolongados de tiempo. Lo que hace este modo es básicamente un pase secundario totalmente preciso en un directorio posiblemente ofensivo que calcula el número exacto de entradas.
Cuando no esté seguro del progreso del programa, no dude en enviar señales de proceso Sigusr1 o Sigusr2 (en Windows intente con ^C) para ver la última ruta procesada o usar el indicador de progreso ( -p parámetro) para ver actualizaciones continuas de estado de 5 minutos.
Si está intentando ejecutarlo en EMC Isilon OneFS> = 7.1 y <8.0 (basado en FreeBSD 7.4), asegúrese de agregar el modo ISILON con -7 parámetro, de lo contrario el programa detectará ST_Size no válido todos los sistemas de archivos. Las versiones de ONEFS 8.0+ no requieren el uso del parámetro -7 . Esto funcionará solo en plataformas 386 y AMD64.
Si tiene un sistema FreeBSD realmente antiguo (<8.3) o un derivado como EMC Isilon OneFS (<7.2) y el programa no puede crear archivos temporales, intente usar el modo CloExec con el parámetro -x . Esto funcionará solo en plataformas 386 y AMD64.
Si desea evitar descender a los sistemas de archivos montados (como en la opción Find -xDev), use el modo OneFilesystem con el parámetro -o . Sin embargo, esto no funcionará en Windows.
Caso de uso típico para encontrar posibles delincuentes en varios sistemas de archivos:
root@box: ~ # findlargedir -c 10000 -t 50000 -a /var /home
2018/09/04 08:13:16 Note: program will attempt to alert on directories larger than 50000 entries by default.
2018/09/04 08:13:16 Determining inode to file count ratio on " /var " . Please wait, creating 10000 files...
2018/09/04 08:13:16 Done. Approximate directory inode size to file count ratio on " /var " is 26.2144.
2018/09/04 08:13:21 Found 0 large directories in " /var " .
2018/09/04 08:13:21 Determining inode to file count ratio on " /home " . Please wait, creating 10000 files...
2018/09/04 08:13:21 Done. Approximate directory inode size to file count ratio on " /home " is 27.0336.
2018/09/04 08:13:21 Directory " /home/user/torrent " is possibly a large directory with ~ 100k entries.
2018/09/04 08:13:21 Calculating " /home/user/torrent " directory exact entry count. Please wait...
2018/09/04 08:13:21 Done. Directory " /home/user/torrent " has exactly 99164 entries.
2018/09/04 08:13:21 Found 1 large directories in " /home " .