가끔 운영 또는 실무자의 실수로 인한 사소한 장애 처리 방안이다
한 가지 상황을 가정해 보겠다
어떤 서비스가 오동작 또는 비 이상적인 로그를 쌓아 해당 파티션이 꽉 찼다
그래서 담당자는 이상 로그가 발생한 위치로 이동하여 당연하게 로그를 지웠다
그런데 용량 확보다 안된다...라는 상황이다
실제로 해당 경로에서 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번은 하기 싫잖아
끝!
'IT Info > Linux' 카테고리의 다른 글
라즈베리파이 Linux 설치 방법 [CentOS] (0) | 2021.12.04 |
---|---|
Linux 아파치(httpd) Tomcat mod_jk 연동 방법 [RHEL, CentOS] (0) | 2021.04.11 |
Linux 아파치(httpd) 컴파일 설치 및 SSL 적용 방법 [RHEL, CentOS] (0) | 2020.10.24 |
Linux Tomcat 컴파일 설치 방법 [RHEL, CentOS] (0) | 2020.10.20 |
Linux Java 컴파일 설치 방법 [RHEL, CentOS] (0) | 2020.10.20 |
댓글