본문 바로가기
IT Info/Linux

Linux 파일 삭제 후 용량 확보 안될 때 해결 방법 [RHEL, CentOS]

by Myste.Lee 2020. 10. 26.
728x90

가끔 운영 또는 실무자의 실수로 인한 사소한 장애 처리 방안이다

 

한 가지 상황을 가정해 보겠다

어떤 서비스가 오동작 또는 비 이상적인 로그를 쌓아 해당 파티션이 꽉 찼다

그래서 담당자는 이상 로그가 발생한 위치로 이동하여 당연하게 로그를 지웠다 

그런데 용량 확보다 안된다...라는 상황이다

실제로 해당 경로에서 du -sh 현재 디렉터리 용량을 보아도 16KB 밖에 안 나온다

하지만 df -h 보면 아직 5GB를 사용하는 것으로 나온다

*상황 재현을 위하여 fallocate -l 5000M error_log 파일을 생성 후 서비스를 시작하였다

담당자는 df -h 용량 확인한 것과 해당 경로에 로그파일이 없는 것을 확인한 뒤 연락을 했을 것이다

 

위와 같이 용량이 바로 확보가 안 되는 이유는 삭제한 파일을 참조하는 서비스가 동작중이기 때문이다

 

그래서? 어떻게 확인할 건데?

 

lsof (List Open File) 명령어를 사용한다 *최소 설치에는 포함되지 않으므로 설치 필요

 

당연하게도 해당 명령어는 여러 가지 옵션이 있지만 위의 상황을 타개할 간단한 옵션만 사용해 보려 한다

 

lsof /[용량확보필요한경로]  입력해보자 (|grep deleted 필터를 걸어도 됨, 삭제한 것이기 때문)

위 예제 경로 기준으로 lsof /app/apache 입력

저렇게 프로세스가 동작하고 있어서 용량이 확보가 안된 것이다

 

그래서 어떻게 해야 하는데?

 

1. service or systemctl 명령어로 서비스 중지

2. Process Kill (kill -9 PID)

3. Reboot

 

정상적인 서비스라면 1번으로 진행하겠지만 위처럼 로그가 아닌 다른 파일이 삭제되고 프로세스 명령 동작과 관련이 있다면 2번으로 진행해야 할 것이다 3번은 하기 싫잖아

 

끝!

728x90

댓글