Ошибки завершения вкладки: bash: невозможно создать временный файл для here-документа: на устройстве не осталось места

41

При использовании панели вкладок я получаю эту ошибку:

bash: невозможно создать временный файл для here-документа: на устройстве не осталось места "

Любые идеи?

Я провел некоторое исследование, и многие люди говорят о файле / tmp, который может быть переполнен. Когда я выполняю, df -hя получаю:

Filesystem      Size  Used Avail Use% Mounted on 
/dev/sda2       9.1G  8.7G     0 100% /
udev             10M     0   10M   0% /dev
tmpfs           618M  8.8M  609M   2% /run
tmpfs           1.6G     0  1.6G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           1.6G     0  1.6G   0% /sys/fs/cgroup
/dev/sda1       511M  132K  511M   1% /boot/efi
/dev/sda4       1.8T  623G  1.1T  37% /home
tmpfs           309M  4.0K  309M   1% /run/user/116
tmpfs           309M     0  309M   0% /run/user/1000

Похоже, что каталог / dev / data собирается взорваться, однако, если я советую:

$ du -sh /dev/sda2
0   /dev/sda2

Кажется, это пусто.

Я новичок в Debian, и я действительно не знаю, как поступить. Я обычно получал доступ к этому компьютеру через ssh. Помимо этой проблемы, у меня есть несколько других с этим компьютером, они могут быть связаны, например, каждый раз, когда я хочу войти в моего пользователя, используя графический интерфейс (с root это работает), я получаю:

Xsession: предупреждение: невозможно записать в / tmp: Xsession может завершиться с ошибкой

lucasrodesg
источник
2
Вы хотите запустить что-то вроде du -hxd1 /, нет du /dev/sda2. /dev/sda2на самом деле не существует на диске.
Муру

Ответы:

20

Ваша корневая файловая система заполнена, и, следовательно, ваш временный каталог (/ tmp и / var / tmp в этом отношении) также заполнен. Многие сценарии и программы требуют места для рабочих файлов, даже для блокировки файлов. Когда / tmp не переписывается плохие вещи случаются.

Вам нужно выяснить, как вы заполнили файловую систему. Обычно это происходит в / var / log (проверьте, что вы зацикливаете файлы журнала). Или / tmp может быть полным. Однако существует множество способов заполнить диск.

du -hs /tmp /var/log

Возможно, вы захотите переразбить, чтобы получить / tmp свой собственный раздел (это старый способ школы, но если у вас достаточно диска, это нормально), или отобразить его в памяти (что сделает его очень быстрым, но начать вызывает проблемы с обменом, если вы переусердствуете с временными файлами).

Майлз Гилхэм
источник
Привет, я посмотрел обе предложенные вами команды и скажу, что и / tmp, и / var / log совершенно пусты: 60K и 49M соответственно.
Lucasrodesg
1
Привет еще раз. Я наконец получил это. Я не знаю, почему я поместил весь контент owncloud в / var. Это снова работает!
lucasrodesg
16

Возможно, вы также потеряли доступ для записи в /tmp/каталог.

Это должно выглядеть так:

ls -l / |grep tmp
drwxrwxrwt   7 root root  4096 Nov  7 17:17 tmp

Вы можете исправить разрешения следующим образом:

chmod a+rwxt /tmp
dothebart
источник
Это сработало для меня!
Джозеф Чемберс
3
Это бесполезное использование grep. Попробуй ls -ld /tmpвместо.
CVn
Вы только что остановили почти полную панику ... стоит голосовать за меня
sbeskur
11

Если кто-то попадет сюда с этой ошибкой, когда его диск не заполнен, обязательно проверьте не только, dfно и df -i. В файловой системе есть фиксированное число inode, и каждый файл нуждается в нем. Если у вас есть только тонны маленьких файлов, ваша файловая система очень легко заполняется этими маленькими файлами, пока на диске остается достаточно места при запуске df.

Майкл Шпеер
источник
Это была моя проблема! Я продолжал пытаться найти то, что занимало пространство. Это не было проблемой вообще. Я полностью использовал иноды. /dev/root 4980000 4980000 0 100% /Может быть, система должна ответить соответствующим сообщением об ошибке?
3

Я получаю ошибку, потом я увидел

[  672.995482] EXT4-fs (sda2): Remounting filesystem read-only
[  672.999802] EXT4-fs error (device sda2): ext4_journal_check_start:60: Detected aborted journal

Я смог это подтвердить,

mount | grep -i sda2
/dev/sda2 on / type ext4 (ro,relatime,errors=remount-ro,data=ordered)
Эван Кэрролл
источник
2

Самый быстрый способ найти ваши папки, которые переполнены, - это сузить размер файла папки по уровням от корневой папки. Вы начинаете с корневой папки:

sudo du -h --max-depth=1 /

Затем - ЛИБО вы увеличиваете глубину, то есть уровни ниже:

sudo du -h --max-depth=2 /

ИЛИ - быстрее - вы смотрите, какая папка израсходовала больше всего дискового пространства, и делайте то же самое с этой папкой:

sudo du -h --max-depth=1 /home/<user>/<overfull-folder>

Как только вы нашли это, просто удалите это:

rm -rf <path to overfull-folder>
Agile Bean
источник
1
со многими выходными файлами удобно отсортировать их по размеру sudo du -h --max-depth=1 / | sort -h(большие файлы внизу или sort -hrбольшие файлы сверху)
wranvaud
0

Для моего случая этой же ошибки это была проблема cagefs, так как этот сервер находился в CloudLinux, с cagefsctl --remount username

Zebouski
источник
-2

Это потому, что места на диске недостаточно, вам нужно очистить большие файлы или очистить процесс, который занимает место:

  1. df -h Просмотр места на жестком диске
  2. du -sh /* Посмотрите, какой каталог самый большой, шаг за шагом, чтобы найти большие файлы
  3. du -h --max-depth=1 найти самый большой файл
zhang_kop
источник
Это, кажется, просто извергает ответ Agile Bean от июня 2018 года.
tripleee