Errores de finalización de tabulación: bash: no se puede crear el archivo temporal para el documento aquí: no queda espacio en el dispositivo

41

Cuando uso la barra de pestañas, sigo recibiendo este error:

bash: no se puede crear el archivo temporal para el documento aquí: no queda espacio en el dispositivo "

¿Algunas ideas?

He estado investigando un poco, y muchas personas hablan sobre el archivo / tmp, que podría estar teniendo algún desbordamiento. Cuando ejecuto df -hme sale:

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

Parece que el directorio / dev / data está a punto de explotar, sin embargo, si le doy un consejo:

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

Parece que está vacío.

Soy nuevo en Debian y realmente no sé cómo proceder. Normalmente solía acceder a esta computadora a través de ssh. Además de este problema, tengo varios otros con esta computadora, pueden estar relacionados, por ejemplo, cada vez que quiero ingresar a mi usuario usando la GUI (con root funciona) obtengo:

Xsession: advertencia: no se puede escribir en / tmp: Xsession puede salir con un error

lucasrodesg
fuente
2
Quieres ejecutar algo como du -hxd1 /, no du /dev/sda2. /dev/sda2Realmente no existe en el disco.
muru

Respuestas:

20

Su sistema de archivos raíz está lleno y, por lo tanto, su directorio temporal (/ tmp y / var / tmp) también están llenos. Muchos scripts y programas requieren algo de espacio para archivos de trabajo, incluso para bloquear archivos. Cuando / tmp no se puede escribir , suceden cosas malas .

Necesita averiguar cómo ha llenado el sistema de archivos. Por lo general, los lugares donde esto sucederá es en / var / log (verifique que esté ciclando los archivos de registro) O / tmp puede estar lleno. Sin embargo, hay muchas, muchas otras formas en que un disco puede llenarse.

du -hs /tmp /var/log

Es posible que desee volver a particionar para dar / tmp su propia partición (esa es la forma de hacerlo de la vieja escuela, pero si tiene mucho disco, está bien), o asignarla a la memoria (lo que lo hará muy rápido, pero comenzará a causar problemas de intercambio si exagera los archivos temporales).

Miles Gillham
fuente
Hola, miré los dos comandos que sugieres y diría que tanto / tmp como / var / log están bastante vacíos: 60K y 49M respectivamente.
lucasrodesg
1
Hola de nuevo. Finalmente lo entendí. No sé por qué coloqué todo el contenido de owncloud en / var. Funciona de nuevo!
lucasrodesg
16

También puede haber perdido el acceso de escritura al /tmp/directorio.

Debería verse así:

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

Puede arreglar los permisos de esa manera:

chmod a+rwxt /tmp
Dothebart
fuente
¡Esto funcionó para mí!
Joseph Chambers
3
Ese es un uso inútil de grep. Intenta en su ls -ld /tmplugar.
un CVn
acabas de detener un ataque de pánico casi lleno ... vale la pena votar por mí
sbeskur
11

Si alguien llega aquí con este error cuando su disco no está lleno, asegúrese de verificar no solo dfsino también df -i. Hay un número fijo de inodos en un sistema de archivos, y cada archivo necesita uno. Si solo tiene toneladas de archivos pequeños, es muy fácil que su sistema de archivos se llene con estos archivos pequeños, mientras que aún queda mucho espacio en el disco cuando ejecuta df.

Michael Speer
fuente
Este fue el problema que tuve! Seguí tratando de encontrar lo que ocupaba el espacio. Ese no era el problema en absoluto. Había usado completamente los inodes. /dev/root 4980000 4980000 0 100% /¿Quizás el sistema debería responder con un mensaje de error apropiado?
ˆᵛˆ
3

Estaba recibiendo un error, entonces vi

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

Pude confirmar esto,

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

La forma más rápida de localizar las carpetas que están demasiado llenas es reducir el tamaño del archivo de la carpeta en niveles desde la carpeta raíz. Comienza con la carpeta raíz de la siguiente manera:

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

Luego, ya sea que aumente la profundidad, es decir, los niveles a continuación:

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

O, más rápido, observa qué carpeta ha consumido más espacio en disco y hace lo mismo en esta carpeta:

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

Una vez que lo haya encontrado, simplemente elimine ese:

rm -rf <path to overfull-folder>
Frijol ágil
fuente
1
con muchos archivos de salida es bueno ordenarlos por tamaño con sudo du -h --max-depth=1 / | sort -h(archivos más grandes en la parte inferior o sort -hrpara archivos más grandes en la parte superior)
wranvaud
0

Para mi caso de este mismo error, fue un problema de cagefs ya que este servidor estaba en CloudLinux, abordado con cagefsctl --remount username

Zebouski
fuente
-2

Esto se debe a que el espacio en disco no es suficiente, debe limpiar archivos grandes o el proceso que ocupa espacio:

  1. df -h Ver espacio en el disco duro
  2. du -sh /* Vea qué directorio es el más grande, paso a paso para encontrar archivos grandes
  3. du -h --max-depth=1 encuentra el archivo más grande
zhang_kop
fuente
Esto parece regurgitar la respuesta de Agile Bean desde junio de 2018.
tripleee