O FindLargedir-Go é um hack rápido destinado a ajudar a identificar diretórios de "buraco negro" em um sistema de arquivos com mais de 100.000 entradas em uma única estrutura plana. O programa tentará identificar qualquer número desses eventos e relatar sobre eles.
O programa não seguirá os links simbólicos e exige que as permissões R/W sejam capazes de calcular um tamanho de inode um diretório para o número de entradas e estimar várias entradas em um diretório sem realmente contá -las. Embora esse método seja apenas uma aproximação do número real de entradas em um diretório, é bom o suficiente para digitalizar rapidamente os diretórios ofensivos.
-a ) pode causar uma E/S excessiva e um uso excessivo de memória; Use apenas quando apropriado-7 parâmetro) devido a diferenças na estrutura de estatísticas do OneFS Kernel-x parâmetro) Há duas maneiras de instalar o findLargedir -go: Existem duas maneiras de instalar o FindLargedir-Go: Baixe seu sabor preferido na página de lançamentos 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 Ao usar o modo preciso ( -a parâmetro), tenha cuidado que as grandes pesquisas de diretório paralisam completamente o processo por longos períodos de tempo. O que esse modo faz é basicamente um passe secundário totalmente preciso em um diretório possivelmente ofensivo, calculando o número exato de entradas.
Quando não tiver certeza do progresso do programa, sinta -se à vontade para enviar sinais de processo SIGUSR1 ou SIGUSR2 (no Windows, tente com ^C) para ver o último caminho processado ou usar o sinalizador de progresso ( -p parâmetro) para ver as atualizações de status de 5 minutos contínuas.
Se você estiver tentando executá -lo no EMC ISILON ONEFS> = 7.1 e <8.0 (com base no FreeBSD 7.4), adicione o modo ISILON com parâmetro -7 caso contrário, o programa detectará inválidos st_size e pulará todos os sistemas de arquivos. O OneFS 8.0+ as liberações não requerem o uso de parâmetro -7 . Isso funcionará apenas nas plataformas 386 e AMD64.
Se você possui um sistema FreeBSD realmente antigo (<8.3) ou um derivado como o EMC ISILON ONEFS (<7.2) e o programa falhar ao criar arquivos temporários, tente usar o modo Cloexec com o parâmetro -x . Isso funcionará apenas nas plataformas 386 e AMD64.
Se você deseja evitar descer em sistemas de arquivos montados (como na opção Find -xDev), use o modo OneFilesystem com o parâmetro -o . No entanto, isso não funcionará no Windows.
Caso de uso típico para encontrar possíveis criminosos em vários sistemas de arquivos:
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 " .