시작하며
안녕하세요. 리눅스 우분투(Ubuntu) 기술 블로그입니다. 우분투 서버를 운영하다 보면 어느 순간 디스크 용량이 가득 차서 서비스가 중단되거나 로그인이 불가능해지는 상황을 마주할 수 있습니다. 시스템이 안정적으로 동작하려면 주기적으로 디스크 상태를 점검하고 안전하게 여유 공간을 확보하는 작업이 필수적입니다. 이번 글에서는 초보 운영자분들도 시스템 장애 없이 안전하게 디스크 사용량을 확인하고 불필요한 데이터를 정리하는 방법을 상세히 다룹니다. 이 글을 통해 디스크 점검 명령어부터 패키지 캐시 정리, 로그 관리, 그리고 실수로 주요 파일을 삭제하지 않기 위한 주의사항까지 모두 익히실 수 있습니다.
1. 디스크 사용량 확인을 위한 기본 명령어
서버를 정리하기 전, 현재 어느 디렉터리와 파티션이 용량을 많이 차지하고 있는지 정확히 파악해야 합니다. 무작정 파일을 지우기보다 아래 명령어를 통해 전체 현황을 먼저 점검하세요.
전체 파일 시스템 여유 공간 확인: df
df 명령어는 마운트된 파일 시스템별 전체 용량과 사용 중인 용량, 남은 용량을 보여줍니다. 인간이 읽기 편한 단위로 출력하려면 -h 옵션을 함께 사용합니다.
df -h
이 명령어를 통해 루트 파티션(/)이나 특정 마운트 포인트의 사용율이 90%를 넘지 않는지 먼저 확인해야 합니다.
특정 디렉터리 용량 확인: du
특정 폴더가 얼마나 많은 용량을 차지하는지 확인할 때는 du 명령어를 사용합니다. 현재 디렉터리 하위 폴더들의 크기를 보기 쉽게 확인하려면 다음과 같이 입력합니다.
du -h --max-depth=1
만약 특정 대형 디렉터리(예: /var 또는 /home) 내부에서 용량 범인을 찾고 싶다면 이 명령어를 해당 경로로 이동해서 실행하면 됩니다.
2. 우분투 패키지 관리자 및 캐시 정리 방법
우분투에서는 패키지 설치와 업그레이드를 반복하면서 APT 패키지 매니저가 다운로드한 설치 파일(.deb) 캐시가 /var/cache/apt/archives 디렉터리에 쌓이게 됩니다. 이 캐시들은 시간이 지날수록 수 gigabyte에 달할 수 있습니다.
APT 캐시 정리하기
더 이상 필요 없는 과거 버전의 패키지 아카이브 파일을 정리하려면 다음 명령어를 실행합니다.
sudo apt-get clean
이 명령어는 캐시 디렉터리에 있는 모든 패키지 파일을 안전하게 제거하여 즉시 디스크 공간을 확보해 줍니다.
사용하지 않는 고아 패키지 제거하기
다른 프로그램의 의존성 때문에 설치되었으나 현재는 어떤 프로그램도 사용하지 않는 패키지들을 ‘고아 패키지(orphaned packages)’라고 부릅니다. 이를 정리하려면 아래 명령어를 입력합니다.
sudo apt-get autoremove --purge
--purge 옵션을 함께 사용하면 패키지와 관련된 설정 파일까지 깔끔하게 제거되므로 디스크 공간 확보에 더욱 효과적입니다.
3. 시스템 로그 파일 정리 방법
서버 운영 중 발생하는 로그는 장애 분석에 꼭 필요하지만, 무한정 쌓이면 디스크를 마비시키는 주원인이 됩니다. /var/log 디렉터리의 용량을 확인하고 오래된 로그를 정리해야 합니다.
저널 로그(Journald) 크기 제한
시스템d 저널 로그가 너무 많은 공간을 차지하고 있다면, 용량이나 기간을 기준으로 로그를 정리할 수 있습니다. 예를 들어 최근 7일 동안의 로그만 남기고 나머지를 삭제하려면 다음 명령어를 사용합니다.
sudo journalctl --vacuum-time=7d
특정 용량(예: 500MB) 이하로 로그 크기를 제한하려면 아래 명령어를 실행합니다.
sudo journalctl --vacuum-size=500M
4. 안전한 디스크 정리를 위한 사전 준비 및 주의사항
디스크를 정리할 때는 언제나 실수를 대비한 안전장치가 필요합니다. 다음 사항을 반드시 기억하세요.
- rm 명령어 사용 주의:
rm -rf명령어는 매우 강력하므로 경로를 지정할 때 오타가 나지 않도록 각별히 주의해야 합니다. 특히 루트 디렉터리나 시스템 중요 폴더에서 실행하지 않도록 합니다. - 주요 설정 백업: 대규모 파일 삭제나 로그 정리 전, 중요한 설정 파일과 데이터베이스는 별도로 백업을 수행합니다.
- 권한 확인: 시스템 파일을 삭제할 때는 반드시
sudo권한을 정확히 인지하고 사용하며, 알 수 없는 시스템 파일은 임의로 삭제하지 않습니다.
5. 실전 디스크 정리 체크리스트
서버 공간이 부족할 때 순서대로 점검하고 실행할 수 있는 실무 체크리스트입니다.
- [ ]
df -h명령어로 전체 디스크 사용률 및 부족한 파티션 확인 - [ ]
du -h --max-depth=1 /var등으로 용량을 많이 먹는 상위 디렉터리 파악 - [ ]
sudo apt-get clean으로 APT 패키지 캐시 제거 - [ ]
sudo apt-get autoremove --purge로 불필요한 의존성 패키지 삭제 - [ ]
sudo journalctl --vacuum-time=7d로 과도하게 쌓인 시스템 저널 로그 정리 - [ ] 정리 완료 후 다시
df -h를 실행하여 확보된 여유 용량 최종 확인
6. 초보자가 자주 하는 실수
디스크를 정리할 때 초보 운영자들이 흔히 저지르는 실수들을 정리했습니다.
- 로그 파일을 직접 rm으로 삭제하기:
/var/log/syslog같은 파일을 단순히rm으로 지워버리면, 해당 로그를 쓰고 있던 프로세스가 여전히 열린 파일 핸들을 붙잡고 있어서 디스크 공간이 반환되지 않는 경우가 많습니다. 로그는truncate명령어를 쓰거나journalctl의 정리 기능을 활용하는 것이 안전합니다. - 캐시 폴더 전체를 수동 삭제하기: 시스템이 관리하는 캐시 디렉터리를
rm -rf로 통째로 날리다가 권한이 깨지거나 필수 디렉터리 구조가 유실되는 문제가 발생할 수 있으므로 패키지 관리자 명령어를 우선 사용해야 합니다.
맺음말
우분투 서버에서 디스크 사용량을 확인하고 정리하는 작업은 서버 관리의 기본이자 가장 중요한 루틴 중 하나입니다. 감에 의존하여 파일을 지우기보다 df와 du 명령어로 정확한 원인을 진단하고, APT 캐시와 저널 로그 정리처럼 안전하게 검증된 방법을 단계별로 적용하는 것이 좋습니다. 오늘 배운 내용을 바탕으로 주기적인 디스크 모니터링 습관을 들여 안정적인 리눅스 서버 운영을 이어가시길 바랍니다.