Я запускаю экземпляр Linux на EC2 (у меня установлены MongoDB и node.js), и я получаю эту ошибку:
Cannot write: No space left on device
Я думаю, что отследил это до этого файла, вот вывод df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda1 1032088 1032088 0 100% /
Проблема в том, что я не знаю, что это за файл, и я также не знаю, является ли этот файл проблемой.
Итак, мой вопрос: как исправить ошибку «На устройстве не осталось места»?
Этот файл, /
это ваш корневой каталог. Если это единственная файловая система, которую вы видите в df
то это все. У вас файловая система размером 1 ГБ, и она заполнена на 100%. Вы можете начать выяснять, как это используется, вот так:
sudo du -x / | sort -n | tail -40
Затем вы можете заменить /
с путями, которые занимают больше всего места. (Они будут в конце, благодаря sort
. Команда может занять некоторое время.)
Я знаю, что отвечаю в этой ветке почти через 5 лет, но это может помочь кому-то, у меня была такая же проблема, у меня был экземпляр m4.xlarge df -h сказал, что / dev / xvda1 заполнен, - 100%
Filesystem Size Used Avail Use% Mounted on
udev 7.9G 0 7.9G 0% /dev
tmpfs 1.6G 177M 1.4G 12% /run
/dev/xvda1 7.7G 7.7G 0 100% /
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
tmpfs 1.6G 0 1.6G 0% /run/user/1000
Я пытался решить эту проблему, вот шаги
sudo find / -type f -printf '%12s %p\n' 2>/dev/null|awk '{if($1>999999999)print $0;}'
Помог мне узнать, что это контейнер докеров, который говорил все мое пространство, поэтому я помещаю весь свой контейнер в свой реестр докеров, а затем сделал sudo rm -rf / var / lib / docker / он очистил мое пространство :) надеюсь, это поможет кому-то :)
Если вы используете загрузочный экземпляр EBS (рекомендуется), вы можете увеличить размер корневого (/) тома, используя процедуру, которую я описываю в этой статье:
Изменение размера корневого диска на запущенном экземпляре EBS Boot EC2
http://alestic.com/2010/02/ec2-resize-running-ebs-root
Если вы используете экземпляр хранилища экземпляров (не рекомендуется), вы не можете изменить размер корневого диска. Вам нужно либо удалить файлы, либо переместить файлы в временное хранилище (например, / mnt), либо присоединить тома EBS и переместить туда файлы.
Вот статья, которую я написал, в которой описывается, как переместить базу данных MySQL с корневого диска на том EBS:
Запуск MySQL на Amazon EC2 с EBS
http://aws.amazon.com/articles/1663
... и подумайте о переходе на загрузочные экземпляры EBS. Есть много причин, по которым вы потом будете благодарить себя.
Я только что решил эту проблему, выполнив эту команду:
sudo apt autoremove
и много старых пакетов было удалено, высвободив 5 гигабайт, например было много пакетов вроде этого "linux-aws-headers-4.4.0-1028"
Недавно я столкнулся с этой проблемой в Amazon Linux. Моя очередь исходящей электронной почты crontab /var/spool/clientmqueue
было 4,5 ГБ.
Я решил это:
sudo find / -type f -size +10M -exec ls -lh {} \;
/bin/rm -f <path-to-large-file>
Задача решена!
Пауло был на правильном пути для меня, но когда я попытался бежать
sudo apt autoremove
он ответил:
Reading package lists... Error!
E: Write error - write (28: No space left on device)
E: IO Error saving source cache
E: The package lists or status file could not be parsed or opened.
Сначала мне пришлось бежать
sudo apt-get clean
Это освободило мне достаточно места для запуска sudo apt autoremove, и это увеличило мою загрузку на / dev / xvda1 со 100% до 28%.
Это могло быть от Дженкинса или Докера. Чтобы решить эту проблему, вам следует очистить журналы Jenkins и установить их размер.