여기서는 멈추세요
- 명령 출력의 서버·서비스·경로가 예상 대상과 다르면 변경 단계로 넘어가지 않습니다.
- 현재 접속 세션, 백업 또는 콘솔 복구 경로를 확보하지 못했다면 상태 변경 명령을 실행하지 않습니다.
STORAGE FIRST AID
SAFE OPERATING BOUNDARY
변경 전 설정과 출력값을 기록하고, 예상과 다른 결과가 나오면 추가 변경을 멈춘 뒤 승인된 운영 복구 절차로 되돌립니다.
BEFORE YOU START
CHECK THE BRANCH
호스트의 du 결과만으로 이미지를 삭제하지 말고 docker system df -v로 이미지·컨테이너·볼륨·빌드 캐시를 먼저 구분합니다.
Docker json-file 로그는 daemon이 관리하므로 파일을 직접 자르지 말고 로그 회전 설정과 컨테이너 재생성 범위를 확인합니다.
삭제된 파일을 프로세스가 계속 열고 있으면 경로에서는 사라져도 공간은 반환되지 않습니다. lsof +L1 결과와 서비스 영향을 함께 확인합니다.
journalctl의 전체 사용량과 persistent·runtime 저장 위치를 구분하고, vacuum 전에 보존 정책과 SystemMaxUse 설정을 확인합니다.
파일을 직접 비우지 말고 logrotate debug 결과, 대상 설정, 애플리케이션의 파일 재열기 방식을 확인합니다.
FOLLOW THE FLOW
먼저 전체 디스크가 아니라 어느 마운트 지점이 부족한지 확인합니다.
df -hTdf -ihUse%가 높으면 용량 문제, IUse%가 높으면 작은 파일이 너무 많은 inode 문제입니다.
문제가 발생한 Mountpoint를 기록하고 그 경로만 조사합니다.
별도 볼륨이나 bind mount를 다른 디스크로 착각하지 않도록 대상 경로의 소스를 확인합니다.
findmnt -T /varSOURCE와 TARGET이 1단계에서 확인한 파일시스템과 일치하는지 봅니다.
다른 볼륨이면 해당 마운트 지점을 기준으로 다음 단계를 실행합니다.
같은 파일시스템 안에서만 한 단계씩 내려갑니다. 파일이 매우 많으면 du가 I/O를 사용할 수 있습니다.
sudo du -xhd1 /var 2>/dev/null | sort -hsudo du -xhd1 /var/log 2>/dev/null | sort -h목록 아래쪽의 큰 디렉터리가 우선 조사 대상입니다. 숫자만 보고 바로 삭제하지 마세요.
애플리케이션 데이터인지 로그·캐시인지 소유 서비스를 먼저 확인합니다.
df는 가득 찼는데 du 합계가 작다면 삭제된 파일을 프로세스가 계속 열고 있을 수 있습니다.
journalctl --disk-usagesudo lsof +L1sudo du -sh /var/log/journal /run/log/journal 2>/dev/nullsystemd-analyze cat-config systemd/journald.conf | grep -E '^(System|Runtime)(MaxUse|KeepFree)='출력이 없으면 배포판 기본값이 적용 중일 수 있습니다.sudo logrotate --debug /etc/logrotate.conf--debug는 로그를 회전하지 않지만 많은 경로를 읽을 수 있습니다.journal 사용량, 삭제됐지만 열린 파일, logrotate의 오류를 구분합니다. vacuum은 보관된 journal만 줄이고 활성 파일은 남을 수 있습니다.
로그 생성 주체와 보존 요건을 확인한 뒤 journald 또는 애플리케이션별 회전 정책을 선택합니다.
아래 명령은 데이터를 줄입니다. 조직의 로그 보존 정책과 장애 분석 필요 여부를 먼저 확인하세요.
sudo journalctl --vacuum-size=500M활성 로그가 아닌 보관 로그만 정리합니다.sudo apt clean설치된 패키지는 제거하지 않습니다.df -hT / /varUse%가 줄었고 서비스 로그가 정상 기록되는지 함께 확인합니다.
재발한다면 journald·애플리케이션 로그 회전 정책을 별도 개선합니다.
PRIMARY REFERENCES
배포판과 버전에 따라 옵션·로그 위치가 다를 수 있습니다. 실행 전 서버의 --help와 로컬 매뉴얼을 함께 확인하세요.