Ошибки завершения вкладки: 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 может завершиться с ошибкой


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

Это сработало для меня!
Джозеф Чемберс

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>

1
со многими выходными файлами удобно отсортировать их по размеру sudo du -h --max-depth=1 / | sort -h(большие файлы внизу или sort -hrбольшие файлы сверху)
wranvaud

0

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


-2

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

  1. df -h Просмотр места на жестком диске
  2. du -sh /* Посмотрите, какой каталог самый большой, шаг за шагом, чтобы найти большие файлы
  3. du -h --max-depth=1 найти самый большой файл

Это, кажется, просто извергает ответ Agile Bean от июня 2018 года.
tripleee
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.