Tab Completion Fehler: bash: temporäre Datei für here-document kann nicht erstellt werden: Kein Platz mehr auf dem Gerät

40

Bei Verwendung der Registerkartenleiste erhalte ich immer wieder folgende Fehlermeldung:

bash: temporäre Datei für here-document kann nicht erstellt werden: Kein Platz mehr auf dem Gerät "

Irgendwelche Ideen?

Ich habe einige Nachforschungen angestellt und viele Leute sprechen über die / tmp-Datei, die möglicherweise einen Überlauf aufweist. Wenn ich ausführe, df -hbekomme ich:

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

Es sieht so aus, als würde das Verzeichnis / dev / data gleich explodieren.

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

Es scheint leer zu sein.

Ich bin neu in Debian und weiß wirklich nicht, wie ich vorgehen soll. Normalerweise habe ich über ssh auf diesen Computer zugegriffen. Abgesehen von diesem Problem habe ich mehrere andere mit diesem Computer, die möglicherweise zusammenhängen. Jedes Mal, wenn ich meinen Benutzer über die GUI eingeben möchte (mit root funktioniert es), erhalte ich Folgendes:

Xsession: Warnung: Schreiben in / tmp nicht möglich: Xsession wird möglicherweise mit einem Fehler beendet

lucasrodesg
quelle
2
Du willst sowas du -hxd1 /nicht laufen du /dev/sda2. /dev/sda2existiert nicht wirklich auf der Festplatte.
Muru

Antworten:

19

Ihr Root-Dateisystem ist voll und daher ist auch Ihr temporäres Verzeichnis (/ tmp und / var / tmp) voll. Viele Skripte und Programme benötigen Speicherplatz für Arbeitsdateien, sogar zum Sperren von Dateien. Wenn / tmp nicht beschreibbar ist, passieren schlimme Dinge.

Sie müssen herausfinden, wie Sie das Dateisystem gefüllt haben. Dies geschieht normalerweise in / var / log (prüfen Sie, ob Sie die Protokolldateien durchlaufen). Oder / tmp ist möglicherweise voll. Es gibt jedoch noch viele andere Möglichkeiten, wie eine Festplatte gefüllt werden kann.

du -hs /tmp /var/log

Möglicherweise möchten Sie die Partition neu partitionieren, um / tmp eine eigene Partition zu geben (das ist die alte Methode, aber wenn Sie genügend Festplatten haben, ist das in Ordnung), oder sie in den Arbeitsspeicher abbilden (was sie sehr schnell macht, aber anfängt Auslagerungsprobleme verursachen, wenn Sie die temporären Dateien übertreiben).

Miles Gillham
quelle
Hallo, ich habe mir beide Befehle angesehen, die Sie vorschlagen, und ich würde sagen, dass sowohl / tmp als auch / var / log ziemlich leer sind: 60K bzw. 49M.
Lucasrodesg
1
Hallo nochmal. Ich habe es endlich verstanden. Ich weiß nicht, warum ich den gesamten Inhalt der owncloud unter / var platziert habe. Es funktioniert wieder
Lucasrodesg
16

Möglicherweise haben Sie auch den Schreibzugriff auf das /tmp/Verzeichnis verloren.

Es sollte so aussehen:

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

Sie können die Berechtigungen folgendermaßen festlegen:

chmod a+rwxt /tmp
dothebart
quelle
Das hat bei mir funktioniert!
Joseph Chambers
3
Das ist eine nutzlose Verwendung von grep. Versuchen Sie es ls -ld /tmpstattdessen.
ein Lebenslauf
Sie haben gerade eine fast vollständige Panikattacke gestoppt ... eine Abstimmung für mich wert
sbeskur
10

Wenn jemand mit diesem Fehler hierher kommt, wenn seine Festplatte nicht voll ist, überprüfen Sie nicht nur, dfsondern auch df -i. Es gibt eine feste Anzahl von Inodes in einem Dateisystem, und jede Datei benötigt einen. Wenn Sie nur Tonnen kleiner Dateien haben, ist es für Ihr Dateisystem sehr einfach, diese kleinen Dateien aufzuladen, während beim Ausführen noch viel Speicherplatz auf dem Laufwerk vorhanden ist df.

Michael Speer
quelle
Das war das Problem, das ich hatte! Ich versuchte immer wieder herauszufinden, was Platz einnahm. Das war überhaupt nicht das Problem. Ich hatte die Inodes vollständig aufgebraucht. /dev/root 4980000 4980000 0 100% /Vielleicht sollte das System mit einer entsprechenden Fehlermeldung antworten?
22.
3

Ich habe Fehler bekommen, dann habe ich gesehen

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

Ich konnte dies bestätigen,

mount | grep -i sda2
/dev/sda2 on / type ext4 (ro,relatime,errors=remount-ro,data=ordered)
Evan Carroll
quelle
2

Der schnellste Weg, um Ihre Ordner zu finden, die zu voll sind, besteht darin, die Dateigröße des Ordners in Stufen vom Stammordner aus einzugrenzen. Sie beginnen mit dem Stammordner durch:

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

Dann - WEDER erhöhen Sie die Tiefe, dh die Ebenen darunter:

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

ODER - schneller - Sie suchen, welcher Ordner den meisten Speicherplatz in Anspruch genommen hat, und tun dasselbe für diesen Ordner:

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

Sobald Sie es gefunden haben, entfernen Sie es einfach:

rm -rf <path to overfull-folder>
Agile Bohne
quelle
1
bei vielen ausgabedateien ist es schön, sie nach größe zu sortieren sudo du -h --max-depth=1 / | sort -h(größere sort -hr
dateien
0

Für meinen Fall des gleichen Fehlers handelte es sich um ein CageFS-Problem, da sich dieser Server unter CloudLinux befand und mit adressiert wurde cagefsctl --remount username

Zebouski
quelle
-2

Dies liegt daran, dass der Speicherplatz nicht ausreicht. Sie müssen große Dateien bereinigen oder den Prozess bereinigen, der Speicherplatz beansprucht:

  1. df -h Festplattenspeicher anzeigen
  2. du -sh /* Sehen Sie sich Schritt für Schritt an, welches Verzeichnis das größte ist, um große Dateien zu finden
  3. du -h --max-depth=1 Finde die größte Datei
zhang_kop
quelle
Dies scheint nur die Antwort von Agile Bean vom Juni 2018
wiederzugeben.