# 우분투(리눅스) 에서 하드용량이 없다고 나오는 문제(No space left on device)
다음과 같은 문제가 발생하는 경우가 있다.
# touch /tmp/check
touch: cannot touch `/tmp/check': No space left on device
파일을 생성하는 명령을 내렸을때 용량이 없다는 메시지가 나온다.
하드용량을 확인해보면.
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 19G 3.0G 15G 17% /
udev 236M 4.0K 236M 1% /dev
tmpfs 98M 180K 98M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 245M 0 245M 0% /run/shm
none 100M 0 100M 0% /run/user
아직 용량은 충분한데 이상하다.
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/xvda1 1253376 1253376 0 100% /
udev 60266 385 59881 1% /dev
tmpfs 62675 261 62414 1% /run
none 62675 2 62673 1% /run/lock
none 62675 1 62674 1% /run/shm
none 62675 1 62674 1% /run/user
바로 inode 의 갯수가 꽉 찬것이다.
분명히 어딘가에서 너무 많은 파일이 등록이 되어 있는 것이다.
범인을 찾아라.
# for i in /home/*; do echo $i; find $i |wc -l; done
=> 해당 위치를 찾아라.
# for dir in *; do [ -d "$dir" ] && echo "$dir" && find "$dir" | wc -l; done
둘다 명령은 동일.(디렉토리를 지정하거나 현재디렉토리를 기준)
의심되는 위치를 위 명령으로 해본다.
결과
session
1194823
=> 찾았다 범인.
너무 많은 세션파일이 생성되어 하드 용량이 남았어도 inode 갯수가 꽉 차서 더이상 파일을 생성할 수 없게 된 것이다.
저 파일들을 정리해주면 된다.
파일이 너무 많으니 rm -rf session 등으로 해주는게 좋다.(각자 알아서)
정상.
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/xvda1 1253376 58729 1194647 5% /
udev 60266 385 59881 1% /dev
tmpfs 62675 261 62414 1% /run
none 62675 2 62673 1% /run/lock
none 62675 1 62674 1% /run/shm
none 62675 1 62674 1% /run/user
=> 이제 정상으로 나온다.