나는 외부 서버에서 일하고있다-거기에서 약간의 웹 API를하고있다. 오늘 API를 사용하고 싶었을 때 다음 오류가 반환되었습니다.
Unknown: write failed: No space left on device (28)
그래서 tmp가 가득 찼다는 것을 알았습니다.
~# df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 102G 97G 0 100% /
그래서 나는 tmp에서 쓰레기를 치워야한다고 생각합니다. 그러나 우선 문제의 원인이 무엇인지 알고 싶습니다 .tmp에서 너무 많은 메모리를 차지하는 것을 의미합니까? 어쩌면 뭔가가 tmp dir을 범람하고 있습니까? 시스템 관리 전문가가 아니고 그냥 웹 API를 작성합니다 … tmp 크기가 실행되는 것이 정상입니까? 어쩌면 가끔씩 일어날까요?
명령 결과 :
du -sh /tmp/* | sort -h
0 /tmp/tmpEZIyDT
0 /tmp/unity_support_test.0
4.0K /tmp/amazoncookie.txt
4.0K /tmp/at-spi2
4.0K /tmp/filewhHOLH
4.0K /tmp/keyring-b3ZOTY
4.0K /tmp/mc-domator
4.0K /tmp/mc-root
4.0K /tmp/pulse-2L9K88eMlGn7
4.0K /tmp/pulse-PKdhtXMmr18n
4.0K /tmp/ssh-thimUVhk2748
8.0K /tmp/pulse-5N1YM8s2cT0i
이상한-tmp dir에서 많은 것을 이해하지 못했을 때 … 아마 다른 무언가가 너무 많은 디스크 공간을 차지하고 있습니다. 어떻게 확인할 수 있습니까?
답변
첫 번째 명령은 / tmp가 실제로 /와 같은 파일 시스템에 있음을 나타냅니다 (즉, 다른 모든 것). 루트 파티션이 가득 찬 경우 다른 항목 (예 : / var / log)이 공간을 차지하고있을 수 있습니다.
물건을 찾는 알맞은 방법은
du -sc * .[^.]* | sort -n
큰 디렉토리를 찾기 위해. 그런 다음 하위 디렉토리로 계속 cd하고 명령을 다시 실행하여 범위를 좁힐 수 있습니다.
답변
최근 배포판에서 :
du -sh /tmp/* | sort -h
오래된 배포판에서 :
du -csm /tmp/* | sort -n
답변
inode가 부족하지 않은지 확인하십시오.
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 1236992 1236992 0 100% /
tmpfs 1007716 1 1007715 1% /dev/shm
/dev/sda1 38456 45 38411 1% /boot
답변
이것이 내가 bashrc에 가지고있는 것입니다. “큰”것이 무엇인지에 대한 좋은 아이디어를 제공하고 거기서 조사 할 수 있습니다. 공유 tmp 공간 대신 시스템 / tmp를 사용하려는 사용자가있을 때 사용하십시오.
function get_big_usage () {
echo -e "\n"
du -ks /tmp/* | sort -nr | head
echo -e "\n"
du -ks /var/* | sort -nr | head
echo -e "\n"
du -ks /home/* | sort -nr | head
}