Rastrear onde o espaço em disco passou no Linux?

462

Ao administrar sistemas Linux, muitas vezes me vejo lutando para rastrear o culpado depois que uma partição fica cheia. Eu normalmente uso du / | sort -nr , mas em um sistema de arquivos grande isso leva muito tempo até que os resultados sejam retornados.

Além disso, isso geralmente é bem-sucedido ao destacar o pior ofensor, mas muitas vezes me deparei com du sem o sort em casos mais sutis e, em seguida, teve que vasculhar a saída.

Eu prefiro uma solução de linha de comando que se baseia em comandos padrão do Linux, já que tenho que administrar vários sistemas e instalar um novo software é uma complicação (especialmente quando falta espaço no disco!)

    
por Anderson 28.08.2008 / 15:17

36 respostas

0

du -sk ./* | sort -nr | \
awk 'BEGIN{ pref[1]="K"; pref[2]="M"; pref[3]="G";} \
     { total = total + $1; x = $1; y = 1; \
       while( x > 1024 ) { x = (x + 1023)/1024; y++; } \
       printf("%g%s\t%s\n",int(x*10)/10,pref[y],$2); } \
    END { y = 1; while( total > 1024 ) { total = (total + 1023)/1024; y++; } \
          printf("Total: %g%s\n",int(total*10)/10,pref[y]); }'

Pretty ...

    
por 11.04.2017 / 21:31
0

Eu percebo que este segmento é bastante antigo, mas, no entanto, muito pertinente em qualquer configuração hoje e além. Embora todos tenham oferecido excelentes opções para rastrear os porcos em disco, o que mais me chamou a atenção foi sua afirmação "... muitas vezes me vejo lutando ...". Parece que você tem que combater esse sintoma com frequência. Eu daria um passo atrás e veria como você pode evitar isso. Uma medida cautelar envolverá duas etapas:

  1. Alerta
  2. Ação no sistema de arquivos

Como exemplo, quando o FS atinge 90%, você pode configurar um alerta via E-mail para informar os usuários sobre essa situação. Ou você pode enviar um e-mail sobre isso. Um cron job pode verificar o status em intervalos de 5 minutos.

Em seguida, quando atingir, digamos, 98%, você poderá executar um script para definir o readonly do FS. Isso não vai doer tanto quanto vai acontecer daqui a pouco. Mas a vantagem de definir um FS antes de 100% é que o (s) usuário (s) pode (m) excluir arquivos quando a gravação for restaurada. Enquanto isso, há um bug em algumas versões mais antigas do Solaris que irão travar o sistema no caso de um FS atingir 100%, mas deixaremos isso por mais um dia.

Espero que isso ajude você e outras pessoas que têm que lidar com isso no dia-a-dia.

    
por 07.06.2017 / 08:01
-1

Eu não posso receber crédito por isso, mas achei ontem:

$ find <path> -size +10000k -print0 | xargs -0 ls -l

texto do link

    
por 17.09.2008 / 20:37
-1

Aqui está o melhor método que encontrei:

cd /
find . -size +500000 -print
    
por 17.09.2014 / 03:30
-1

Identifique o sistema de arquivos problemático e use -xdev para atravessar apenas esse sistema de arquivos.

por exemplo,

find / -xdev -size +500000 -ls
    
por 26.06.2015 / 15:53
-2

O mais simples é alterar seu diretório atual para / e executar:

du -chs / | sort -h
    
por 21.05.2015 / 07:11