Gerenciamento de tamanho de disco

3

Estou usando o Fedora 16. Meu / dev / sda2, montado em / (root) com algo como 50G foi preenchido 100%:

[foampile@~ 13:13:39]> df
Filesystem     1K-blocks     Used Available Use% Mounted on
rootfs          51606140 49025452         0 100% /
devtmpfs         2988452        0   2988452   0% /dev
tmpfs            2999424       96   2999328   1% /dev/shm
/dev/sda2       51606140 49025452         0 100% /
tmpfs            2999424    51992   2947432   2% /run
tmpfs            2999424        0   2999424   0% /sys/fs/cgroup
tmpfs            2999424        0   2999424   0% /media
/dev/sda1          99150    79569     14461  85% /boot
/dev/sda5      247972844 10782056 224594412   5% /home

Q1 : Existe um comando ou uma opção com ls, que listará todos os arquivos em um diretório recursivamente e os classificará em ordem decrescente por tamanho? Gostaria de ver quais arquivos / dirs estão sobrecarregando o dispositivo.

Q2 : Meu / home é relativamente não utilizado. Existe uma maneira de reparticionar o disco e mudar algum espaço em disco de / dev / sda5 (/ home) para / dev / sda2?

Obrigado

    
por amphibient 29.10.2012 / 18:36

3 respostas

3

Q1. Tente algo como sudo du -a -m -x | sort -k1n -r | head -n40 . O sinal -a to du é recursivo. O sinalizador -m exibe tamanhos em MB. O -x fica em um único sistema de arquivos. Isso listará arquivos e diretórios e apenas os 40 maiores (por causa da opção -n40 para head ). Algumas implementações du têm uma opção -t SIZE para exibir apenas entradas cujo tamanho excede SIZE.

Para listar apenas os arquivos, você pode tentar algo como: find / -xdev -type f -size +1M -ls . Isso listará apenas arquivos no mesmo sistema de arquivos que / cujo tamanho excede 1 MB.

Q2. Quase certamente. Mas você deve perguntar sobre isso separadamente ou pesquisar (aqui ou em outro lugar) sobre palavras-chave como "linux" e "repartition" porque eu já vi isso ser discutido com muita frequência. Aqui estão alguns Qs anteriores neste site:

por 29.10.2012 / 19:26
4

50GB para rootfs é enorme , é melhor verificar por que o sistema de arquivos está cheio do que estendê-lo cegamente. Se você apenas estender o sistema de arquivos raiz, é provável que ele seja preenchido novamente em pouco tempo. Eu espero que / var, / var / log ou / tmp sejam preenchidos.

Na minha experiência, isso geralmente é causado por uma grande coleção de arquivos relativamente pequenos (ish) e, portanto, é melhor fazê-lo de maneira manual e estruturada. O método abaixo permitirá que você encontre um único arquivo grande ou um diretório com um grande número de arquivos pequenos.

sudo -i
cd /
du -sxh * | sort -h
  • du lista o uso de disco

    • -h tamanhos de impressão em formato legível por humanos (por exemplo, 1K 234M 2G)
    • -s para exibir apenas um total para cada argumento
    • -x para pular diretórios em diferentes sistemas de arquivos
  • sort -h faz o maior diretório aparecer por último.

Agora, investigue os últimos (alguns) diretórios:

cd the_large_diretory

e repita

du -sxh * | sort -h

Até encontrar o diretório que contém o (s) arquivo (s) grande (s). Então, finalmente, você pode inspecionar o conteúdo do diretório com:

cd the_large_directory
ls -hlrS
  • ls para listar o conteúdo do diretório
    • -h para mostrar o tamanho do arquivo em 'formato legível por humanos'
    • -l para mostrar detalhes do arquivo
    • -r para inverter a classificação (o maior arquivo por último)
    • -S para classificar por tamanho de arquivo

Notas

  • Se um dos comandos du ou sort em seu sistema não suportar o sinalizador -h , use apenas du -sxk * | sort -n . A saída é semelhante, um pouco mais difícil de ler devido a números longos.
  • Se ls no seu sistema não suportar o sinalizador -h , basta ignorá-lo, não é necessário, mas melhora a legibilidade.
  • Se ls no seu sistema não suportar o sinalizador -S , canalize a saída para sort -nk5
por 29.10.2012 / 22:13
2

A1: ls -larS / | head -50

A2: sim, mas tenha cuidado ao redimensionar / home, certifique-se de forçar uma verificação de disco e backup

e2fsck -f /home

então

resize2fs /home 50G
    
por 29.10.2012 / 19:30