본문 바로가기
리눅스

du / df 용량 확인

by DevJR 2021. 2. 5.

어느날엔가 이런 연락을 받는다.

 

"xx님 지금 OO 서버에 마운트된 NAS의 특정 경로 /xxxx 에 용량부족 경고가 뜨네요~ 확인 부탁드립니다."

 

용량이 부족하다고? 모르겠다 퇴근하...ㅈ

그럼 내가 선택할 수 있는 방법은 두가지다.

1. 해당 경로에 대해 용량 증설 요청을 한다.
2. 해당 경로에 가서 불필요한 파일을 제거하여 용량을 확보한다.
3. 도망친다.

 

회사마다 다르겠지만, 어쨋든 용량 증설은 서버를 사용하는 일이고, 

사용량이 늘어난다는건 그만큼의 비용이 발생할 수 있는 일이기에

결국 내 선택지는 2번인 '불필요 파일의 정리` 를 택할 수 밖에 없었다.

 

방법을 정했지만, 그에 앞서서 현재 상태가 어떠한지 파악이 먼저다.

(대체 용량이 얼마나 초과했길래 경고가 떴는지 내 눈으로 확인하겠어 +_+!)

 

파일 시스템 디스크 공간 확인

df -h

df 명령어는 시스템에 마운트된 하드디스크의 용량 확인시 사용하는 명령어로

h 옵션은 용량을 적절한 단위로 바꾸어 출력하도록 해준다.(사람이 읽을 수 있게~ --human-readable의 약자라고 한다..)

이런식으로 출력된다. (정확한 경로는 사정상 지웠다.)

맨 왼쪽편은 해당 경로가 마운트된 오리지날 경로이고,

왼쪽에서 두번째 항목은 해당 경로에 할당된 전체 용량이며, 그 우측편은 현재 사용용량, 사용가능한 용량, 현재 사용중인 비율(%), 현재 마운트되어 접근 가능한 경로 순이다.

 

즉, 문제가 되고 있는 건 90% 사용률에 다다른 마지막 경로였다.

(눈으로 확인하고 나니 만족스럽다.)

 

그런데 문제는

어떤 파일을 지울것인가?

 

평소 불필요 파일을 목록화 했거나, 불필요한 파일이 어느 위치에 있는지 기억하고 있다면 모를까

바로 어떤 파일을 지울 것인지 판단하는 일은 쉽지 않다.

 

특히나 실무에서는 NAS폴더 내에 예전부터 내려온 어떤 용도인지도 모를 파일과 폴더들이 

쫙 깔려있다.

 

그렇다고 하나하나 열어보면서 불필요한 파일을 찾는것도 시간 낭비라고 생각한다.

 

이때 필요한건?

 

우선적으로 가장 용량을 많이 차지하는 폴더를 찾아서

불필요하다고 판단되면 과감하게 제거해주는 것이다. (물론 혹시 모를 사태에 대비해 백업해두는 것이 좋다.)

 

그렇다면 폴더별 용량으로 줄을 세워서 가장 큰 폴더부터 확인해보는 게 빠를 것이다.

 

특정 경로에서 디렉토리를 용량순으로 정렬부터 해보자

 

디렉토리 용량 순 정렬

du -S | sort -n 

du 명령어는 `디렉토리별 사용량` 을 알려주는 명령어이다.

대문자 S는 디렉토리의 총 사용량을 출력할 때 사용한다. (하위 디렉토리 사용량 제외)

sort는 정렬을 뜻하는 명령어이고, n은 숫자로 정렬하는 옵션인데 여기에서는 디렉토리 총 용량으로 정렬을 했으니 총 용량이 큰 순서대로 정렬하겠다는 의미이다.

 

그런데 이렇게 입력하니 한참이 지나도 아무 반응이 없다...

 

해당 경로에 내에 파일 및 디렉토리가 너무 많아서 그런지 시간이 걸리는 것으로 판단되었다.

 

다른 방법이 없을까 싶어서 찾아보니

 

디렉토리 기가바이트(GB) 단위 이상일 경우 용량 확인

du -h | grep [0-9]G

이런 명령어가 있다.

h 옵션은 위와 마찬가지로 적절하게 용량 표시를 해주는 것이고(사람이 알아볼 수 있게)

grep 명령어는 특정 문자열을 찾을 때 사용하는 명령어인데, 여기서는 숫자로 시작하는 기가바이트(G) 용량인 경우 찾겠다 라는 의미이다.

즉, 디렉토리 기가바이트(GB) 단위 이상일 경우 용량 확인을 위한 명령어이다.

기가바이트(GB) 단위 이상인 폴더들만 찾아진다.

이중 용량이 가장 큰 폴더부터 찾아들어가서 

불필요한 파일을 확인하고 제거해주면 간단히(?) 해결이 된다.

 

끄읕-!