AWS EC2 - Sem espaço deixado no dispositivo

4

Eu tenho uma instância do EC2 e quando eu faço login, obtenho

mktemp: failed to create file via template '/tmp/.colorlsXXX': No space left on device

No entanto, quando faço df -h , vejo

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  4.2G  3.5G  55% /
devtmpfs        812M   16K  812M   1% /dev
tmpfs           828M     0  828M   0% /dev/shm

Fazer df -i me dá

/dev/xvda1     524288 524288      0  100% /
devtmpfs       207790    414 207376    1% /dev
tmpfs          211891      1 211890    1% /dev/shm

O que está acontecendo aqui?

    
por Kyle Decot 02.10.2014 / 21:06

2 respostas

12

Você esgotou todos os inodes disponíveis em seu sistema de arquivos. Você provavelmente tem um diretório em algum lugar com uma porcaria métrica de arquivos minúsculos. Você precisará localizar esse diretório e remover alguns dos arquivos.

Para pesquisar qual pasta do seu servidor está comendo o limite de inode, você pode executar este comando:

find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -nr

Comando obtido de aqui

    
por 02.10.2014 / 21:12
0

Esse erro ocorreu enquanto eu tentava instalar ubuntu-desktop conforme instruído pelo centro de conhecimento da AWS.

Então eu encontrei aqui como encontrar todos esses diretórios com um grande número de arquivos minúsculos:

for i in /*; do count='sudo find $i | wc -l'; if [ $count -gt 10000 ]; then echo $i $count; fi; done

/lib 18982
/proc 35223
/sys 36490
/usr 253941
/var 14584

Execute-o novamente para cada subdiretório suspeito (para mim, ele estava oculto em / usr / * ).

Mas antes de remover esses subdiretórios com rm -rf (se tiver certeza absoluta!), tente remover com segurança os pacotes do Linux que foram instalados por outros pacotes, mas não são mais necessários :

sudo apt-get -f install
sudo apt-get autoremove

Execute df -i novamente para ver se você tem mais espaço agora.

    
por 28.08.2017 / 15:04