탭 완성 오류 : bash : here-document에 대한 임시 파일을 만들 수 없습니다 : 장치에 남은 공간이 없습니다.


38

탭 표시 줄을 사용할 때이 오류가 계속 발생합니다.

bash : 여기 문서에 임시 파일을 만들 수 없습니다 : 장치에 남은 공간이 없습니다 "

어떤 아이디어?

나는 약간의 연구를 해 왔으며 많은 사람들이 / 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

비어있는 것 같습니다.

데비안을 처음 접했고 어떻게 진행해야할지 모르겠습니다. 나는 보통 ssh를 통해이 컴퓨터에 접근했다. 이 문제 외에도이 컴퓨터에 다른 몇 가지가 있습니다. 예를 들어 GUI를 사용하여 사용자를 입력 할 때마다 (루트가 작동하는 경우) 얻을 수 있습니다.

Xsession : 경고 : / tmp에 쓸 수 없음 : Xsession이 오류와 함께 종료 될 수 있습니다.


2
당신은 du -hxd1 /하지 않고 같은 것을 실행하고 싶다 du /dev/sda2. /dev/sda2디스크에는 실제로 존재하지 않습니다.
muru

답변:


18

루트 파일 시스템이 가득 차서 temp dir (/ tmp 및 / var / tmp)도 가득 찼습니다. 많은 스크립트와 프로그램에는 파일 작업을위한 공간이 필요하며 파일을 잠그기도합니다. / tmp를 쓸 수 없는 경우 나쁜 일이 발생합니다.

파일 시스템을 채우는 방법을 알아 내야합니다. 일반적으로 이러한 상황은 / var / log에 있습니다 (로그 파일을 순환하고 있는지 확인). 또는 / tmp가 가득 찼을 수 있습니다. 그러나 디스크를 채울 수있는 다른 많은 방법이 있습니다.

du -hs /tmp /var/log

/ tmp에 자체 파티션을 제공하기 위해 파티션을 다시 나누고 싶을 수도 있습니다 (이것은 오래된 학교 방법이지만 디스크가 충분하면 괜찮습니다). 메모리에 매핑하십시오 (매우 빠르지 만 임시 파일을 과도하게 사용하면 스와핑 문제가 발생합니다).


안녕하세요, 나는 당신이 제안하는 두 명령을 모두 보았고 / tmp와 / var / log가 모두 비어 있습니다 : 각각 60K와 49M.
lucasrodesg

1
다시 안녕. 나는 마침내 그것을 얻었다. 왜 모든 자체 클라우드 콘텐츠를 / var 아래에 배치했는지 모르겠습니다. 다시 작동합니다!
lucasrodesg

16

/tmp/디렉토리에 대한 쓰기 액세스 권한이 손실되었을 수도 있습니다 .

다음과 같아야합니다.

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

다음과 같은 권한을 수정할 수 있습니다.

chmod a+rwxt /tmp

이것은 나를 위해 일했다!
Joseph Chambers

2
그것은 쓸모없는 grep 사용입니다. ls -ld /tmp대신 시도하십시오 .
CVn

당신은 공황 발작에 가까운 전체를 중단 ... 가치가 투표를 위로 나를 위해
sbeskur을

10

디스크가 가득 찼을 때이 오류가 발생하면 여기 df뿐만 아니라을 확인하십시오 df -i. 파일 시스템에는 고정 된 수의 inode가 있으며 모든 파일에는 하나의 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

이 같은 오류의 경우이 서버가 CloudLinux에 있었기 때문에 cagefs 문제였습니다. cagefsctl --remount username


-2

디스크 공간이 충분하지 않기 때문에 큰 파일을 정리하거나 공간을 차지하는 프로세스를 정리해야합니다.

  1. df -h 하드 디스크 공간보기
  2. du -sh /* 큰 파일을 찾기 위해 가장 큰 디렉토리를 단계별로 봅니다.
  3. du -h --max-depth=1 가장 큰 파일을 찾으십시오

이것은 2018 년 6 월부터 Agile Bean의 답변을
역겨운
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.