본문 바로가기
리눅스 강의

리눅스 서버 용량 부족? 관리법 완벽 정리!

by infolily 2024. 10. 19.

리눅스 서버를 운영하다 보면, 갑자기 디스크 공간이 부족해져서 깜짝 놀란 경험 있으신가요? 파일 복사도 안 되고, 디렉토리 이동도 안 되고... 정말 답답할 때가 많죠. 저도 EC2에서 쪼끔한 용량의 스토리지만 써서 우분투를 돌리다 보니, 디스크 공간이 부족해서 파일 복사가 안 되거나, 디렉토리 이동이 안 되는 문제를 겪었어요.

 

이럴 때 가장 좋은 방법은 스토리지 크기를 늘리는 거예요. EC2를 사용한다면, EC2에 연결된 EBS의 크기를 몇 번의 클릭만으로 늘릴 수 있지만, 물리적인 HDD를 사용할 때는 용량을 늘리는 게 좀 까다로워요. 또 클라우드를 쓰면서 비용 절감 때문에 디스크 공간 확보가 쉽지 않을 때도 있죠.

 

그래서 디스크 공간을 확장하기 전에 어떤 파일이 용량을 가장 많이 차지하고 있는지, 혹시 불필요하게 큰 용량을 차지하는 로그 데이터나 더미 데이터가 있는지 확인해보면, 좀 더 현명하게 스토리지를 관리할 수 있어요. 오늘은 이럴 때 사용할 수 있는 몇 가지 유용한 리눅스 명령어들을 꼼꼼하게 알려드릴게요!

 


리눅스 서버 용량 확인:

 명령어는 disk free의 약자로, 리눅스 시스템 전체의 디스크 사용량을 확인할 때 사용하는 명령어에요.

 

 명령어를 입력하면, 각 파일 시스템의 총 용량, 사용 중인 용량, 남은 용량을 사람이 보기 편한 단위(K, M, G)로 보여줘요. 예를 들어, 아래와 같이 출력될 수 있죠.

 

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       20G   15G   5.0G  75% /
tmpfs          32G   100M  32G   1% /dev/shm

  명령어를 사용하면, 어떤 파일 시스템의 용량이 부족한지 한눈에 파악할 수 있어요.

 

좀 더 자세히 살펴볼까요?

 

df  명령어는 기본적으로 전체 파일 시스템의 용량과 사용 현황을 보여주지만,  -h  옵션을 추가하면 용량 단위를 M, G, T와 같은 사람이 보기 쉬운 단위로 표시해줘요.

df -a  명령어를 사용하면, 숨겨진 파일 시스템까지 포함해서 보여주기 때문에, 더욱 자세한 정보를 얻고 싶을 때 유용해요.

df -T  옵션을 이용하면 파일 시스템의 타입까지 확인할 수 있고,  df -i  옵션을 사용하면 inode 정보를 볼 수 있어요. inode는 파일 시스템에서 파일이나 디렉토리를 저장하는데 사용하는 데이터 구조라고 생각하면 돼요.


du

 명령어는 disk usage의 약자로, 특정 디렉토리 또는 파일의 용량을 확인할 때 유용해요.

 

 명령어를 사용하면, 현재 디렉토리의 하위 디렉토리별로 용량을 확인할 수 있답니다.

 

예를 들어,  디렉토리의 하위 디렉토리별 용량을 확인하고 싶다면, 다음과 같이 명령어를 입력하면 돼요.

 

du -h --max-depth=1 /var/log

 활용할 수 있을까요?

 

du  명령어는  df 와 달리 특정 디렉토리 또는 파일의 용량을 확인하는 데 특화되어 있어요.

-h  옵션을 사용하면, 용량 단위를 사람이 보기 쉬운 단위로 표시해주고,  --max-depth=1  옵션을 추가하면 현재 디렉토리의 바로 아래 하위 디렉토리의 용량만 확인할 수 있게 해줘요.

-a  옵션을 사용하면 파일 단위로 용량을 확인할 수 있고,  -s  옵션은 현재 디렉토리와 하위 디렉토리의 용량을 모두 합쳐서 보여줘요.


큰 파일 찾기:

서버 용량이 부족할 때, 어떤 파일이 용량을 많이 차지하고 있는지 알아야 해결책을 찾을 수 있잖아요?

 

이럴 때  명령어를 사용하면, 특정 크기 이상의 파일을 찾을 수 있어요.

 

예를 들어,  디렉토리 아래에 있는 100MB 이상의 파일을 찾고 싶다면, 다음과 같은 명령어를 사용하면 돼요.

 

find /home/user -size +100M -print

 옵션들을 사용할 수 있을까요?

 

-size  옵션을 사용해서 파일 크기를 지정할 수 있어요. 예를 들어  +100M 은 100MB보다 큰 파일을 의미하고,  -100M 은 100MB보다 작은 파일을 의미해요.

-name  옵션을 사용해서 파일 이름 패턴을 지정할 수 있어요. 예를 들어  *.log 는 모든 로그 파일을 의미해요.

-type  옵션을 사용해서 파일 종류를 지정할 수 있어요. 예를 들어  -type f 는 일반 파일을 의미하고,  -type d 는 디렉토리를 의미해요.


불필요한 파일 삭제: 용량 확보의 지름길

큰 파일들을 찾았다면, 이제 불필요한 파일들을 삭제해서 용량을 확보할 차례에요.

 

로그 파일이나 더미 데이터처럼 필요 없는 파일들을 찾아서 삭제하면, 꽤 많은 공간을 확보할 수 있어요.

 

와  명령어를 함께 사용하면, 특정 조건에 맞는 파일들을 삭제할 수 있어요.

 

예를 들어, 30일 이상 된 로그 파일을 모두 삭제하려면, 다음과 같은 명령어를 사용하면 돼요.

 

find /var/log -name "*.log" -mtime +30 -exec rm {} \;

!

 

rm  명령어는 파일을 삭제하는 명령어이기 때문에, 실수로 중요한 파일을 삭제하지 않도록 주의해야 해요.

-exec rm {} \;  부분은  find  명령어로 찾은 파일들을  rm  명령어로 삭제하라는 뜻이에요.

-mtime +30 은 30일 이상 된 파일을 의미해요.


스토리지 확장: 더 넓은 공간 확보하기

위에서 설명한 방법들을 사용해도 디스크 공간이 부족하다면, 스토리지를 확장하는 방법을 고려해야 할 거예요.

 


클라우드 환경에서 스토리지 확장하기

클라우드 환경에서는 EBS(Elastic Block Store)나 다른 스토리지 서비스를 이용해서 쉽게 용량을 늘릴 수 있어요.

 

예를 들어, AWS EC2 인스턴스를 사용한다면, EBS 볼륨의 크기를 몇 번의 클릭만으로 증가시킬 수 있답니다.

 


물리 서버에서 스토리지 확장하기


물리적인 서버에서는 하드 드라이브를 추가하거나 교체하는 방법으로 용량을 늘릴 수 있지만, 이 과정은 클라우드 환경보다 좀 더 복잡하고 어려울 수 있어요.

 


리눅스 서버 용량 관리: 정리 및 요약

리눅스 서버에서 용량 관리는 서버의 성능과 안정성을 유지하는 데 정말 중요해요.

 

오늘 알려드린 , , ,  명령어들을 활용해서 정기적으로 디스크 사용량을 모니터링하고, 불필요한 파일들을 정리해주는 습관을 들이면, 서버의 효율성을 높이고 장애를 예방할 수 있답니다.

 

그리고 스토리지 용량이 부족해지기 전에 미리 용량을 확보해두는 것도 좋은 방법이에요.

 

df -h 전체 디스크 용량 확인 각 파일 시스템의 총 용량, 사용 중인 용량, 남은 용량을 사람이 읽기 쉬운 단위로 표시 df -h
du -h --max-depth=1 디렉토리별 용량 확인 현재 디렉토리의 하위 디렉토리별 용량을 표시 du -h --max-depth=1 /var/log
find /path/to/directory -size +100M -print 특정 크기 이상의 파일 찾기 지정된 경로에서 특정 크기 이상의 파일을 찾음 find /home/user -size +100M -print
find /var/log -name "*.log" -mtime +30 -exec rm {} \; 특정 조건에 맞는 파일 삭제 특정 기간이 지난 로그 파일 등 불필요한 파일 삭제 find /var/log -name "*.log" -mtime +30 -exec rm {} \;

명령어 기능 설명 예시

 

자주 묻는 질문 (FAQ)

Q1. 리눅스 서버의 디스크 용량을 확인하는 가장 좋은 방법은 뭐예요?

 

A1. 리눅스 서버의 디스크 용량을 확인하는 가장 기본적인 방법은  명령어를 사용하는 거예요. 이 명령어를 사용하면, 각 파일 시스템의 총 용량, 사용 중인 용량, 남은 용량을 한눈에 파악할 수 있답니다.

 

Q2. 어떤 파일이 용량을 많이 차지하는지 어떻게 알 수 있나요?

 

A2.  명령어를 사용하면, 특정 디렉토리 또는 파일의 용량을 확인할 수 있어요. 또한,  명령어를 사용하면, 특정 크기 이상의 파일을 찾을 수 있기 때문에, 용량을 많이 차지하는 파일을 찾는 데 유용하답니다.

 

Q3. 리눅스 서버의 스토리지를 확장하는 방법은 뭐가 있나요?

 

A3. 클라우드 환경에서는 EBS와 같은 스토리지 서비스를 이용해서 쉽게 용량을 늘릴 수 있어요. 물리 서버에서는 하드 드라이브를 추가하거나 교체하는 방법으로 용량을 확장할 수 있지만, 이 과정이 좀 더 복잡할 수 있답니다.

 

마무리

 

리눅스 서버에서 용량 관리는 서버의 성능과 안정성을 유지하는 데 정말 중요해요. 오늘 알려드린 내용들을 잊지 말고,  정기적으로 서버 용량을 체크하고 관리하는 습관을 들이면, 서버의 효율성을 높이고 문제 발생을 예방할 수 있을 거예요.

 

키워드

리눅스, 리눅스서버, 서버관리, 용량관리, 디스크용량, 디스크공간, df, du, find, rm, ebs, 스토리지, 클라우드, aws, ec2, 서버용량확보, 서버최적화, 시스템관리, 리눅스명령어, 서버장애, 서버성능, 데이터관리, 파일시스템, 리눅스팁, IT팁, IT관리, 서버개발, 데브옵스, DevOps