Назад | Перейти на главную страницу

AWS EC2 - на устройстве не осталось места

У меня есть экземпляр EC2, и когда я вхожу в систему, я получаю

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

Однако когда я это сделаю df -h я вижу

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

Делать df -i дает мне

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

Что тут происходит?

Вы исчерпали все доступные inode в вашей файловой системе. Скорее всего, у вас есть каталог с кучей крошечных файлов. Вам нужно будет найти этот каталог и удалить некоторые файлы.

Чтобы найти, какая папка вашего сервера использует ограничение inode, вы можете выполнить эту команду:

найти . -xdev -type f | вырезать -d "/" -f 2 | сортировать | uniq -c | sort -nr

Команда взята из Вот

Эта ошибка возникла у меня при попытке установить Ubuntu-рабочий стол по указанию центра знаний AWS.

Затем я нашел Вот как найти все эти каталоги с огромным количеством крошечных файлов:

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

Запустите его снова для каждого подозрительного подкаталога (для меня он был скрыт в / usr / *).

Но прежде чем удалить эти подкаталоги с помощью rm -rf (если вы абсолютно уверены!), попробуйте безопасно удалить пакеты Linux, которые были установлены другими пакетами, но больше не нужны:

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

Бегать df -i еще раз, чтобы увидеть, есть ли у вас больше места.