개요

  • 리눅스 서버에서 저장공간 용량이 없어서 웹 서버 로그파일이 더이상 저장되지 않는다던가 하는 경우가 있다.
  • 이런 경우에 불필요한 파일을 제거하는 방법을 정리해둔다.

삭제할 곳 찾기

  • 일단 어느 디렉토리가 용량을 많이 차지하는지 찾아내야 한다.
  • 가장 상위 폴더로 이동해서 디렉토리별 용량을 확인한다.
sudo su
cd /
du -h --max-depth=1
  • 가장 용량을 많이 차지하는 디렉토리를 찾았으면 해당 디렉토리로 이동해서 같은 명령어를 실행해서 찾아가면 된다.
  • 파일을 찾았으면 rm -f 파일 또는 rm -rf 디렉토리명 으로 삭제한다.

참고로, 위의 커맨드를 실행했을 때 . 경로가 차지하는 용량이 클 때가 있다. 경로의 용량은 모든 서브 디렉토리들의 합을 나타낸다.

...생략..
11M     ./etc
16K     ./lost+found
21M     ./lib64
3.2G    .

종류별 방법

패키지 캐시 확인

패키지 캐시를 지워본다. yum 을 사용하는 경우라면 아래 명령으로 삭제가능하다.

# 캐시가 차지하고 있는 용량 확인
du -sh /var/cache/yum 
# 캐시 삭제
yum clean all

도커 오버레이 삭제

도커 오버레이가 생각보다 용량을 많이 차지한다. (보통 /var/lib/docker/overlay2에 있다)

다음 명령으로 청소가 가능하다.

docker system prune -a -f

트러블 슈팅

삭제된 파일을 프로세스가 잡고 있는지 확인

삭제된 파일을 프로세스가 잡고 있는 경우가 있다. 이건 이 명령으로 확인 가능하다.

lsof | grep '(deleted)'

출력되는 건이 있으면 해당 어플리케이션을 재구동하면 문제가 해결된다. 아래 링크에 상세한 설명이 있다.

  • https://kaiwern.com/posts/2020/03/16/aws-ec2-disk-space-full/