SharedIT | 묻고 답하기(AMP)

리눅스 비정상 프로세스 확인

ps 명령어를 통해서 비정상 프로세스를 확인하곤 하는데요

수십대의 서버를 일일이 확인하기에는 버거워서 스크립트를 짜려고합니다.

defunct 상태인 좀비프로세스를 확인하는것 이외에 이상프로세스를 걸러낼만한 것들이 뭐가 있을까요?

(grep으로 걸러내려고 구상했으나 다른 방법이 있다면 조언부탁드립니다)


Tags : 태그가 없습니다.

3개의 답변이 있습니다.

deerokgo
  0 추천 | 약 일 년 전

defunct 외에 리눅스에서 이상 프로세스 라는 것을 확인 하는 것이 쉽지 않을거 같습니다.


wansoo
  0 추천 | 약 일 년 전

ps aux | grep Z 나...

ps aux | egrep "Z|defunct"  와 같이 사용하면 되지 않을까 싶어 보이네요.

이렇게 실행하면 불필요하게 실행한 자신의 processor도 나오고, 첫줄의 타이틀 부분도 나오기 때문에...

ps aux | egrep "Z|defunct" | egrep -v "grep|USER" 같이 명령을 실행해 준다면 스크립트 등으로 명령을 수행하기에 편할 것  같고요.

비 정상 프로세서를 찾는 이유는 해당 프로세서를 제거하기 위함이 목적이 되겠는데...

찾아서 확인하고 다시 제거 하고 할 필요없이...


kill -9 $(ps aux | egrep "Z|defunct" | egrep -v "grep|USER" | awk '{print $2}' ) 와 같이 명령을 줘서

 찾아서 한번에 바로 제거해 버리는 방식으로 처리하는게 낫지 않을까 싶어 보이네요.


crontab 같은 곳에 등록 시켜 두고 적절한 일정에 의해 자동으로 제거하도록 해 두면 편하지 않을까 싶기도 하고요.

wansoo | 약 일 년 전

명령을 조금 더 짧게 사용하려 한다면...

kill -9 $(ps axo pid=,stat= | awk '$2~/^Z/ { print $1 }')

같이 사용하는 것도 괜찮아 보이고요.

찌롱 | 약 일 년 전

좀비상태인것을 확인하는것 이외에 이상프로세스 확인은 따로 불필요할까요?

wansoo | 약 일 년 전

이상 상태라는 게... 막연할 것 같은데요.

어떤 상태가 정상이고 어떤 상태가 이상한 상태라는 정의 부터하는 게 필요할 것 같습니다.

예를 들어 열려 있지 말아야 할 서비스 포트를 열고 있다거나, idle 타임이 일정 시간 이상이라거나, 지나치게 지나친 과부하를 일으키는 processor라 든가... 등등의 정상적이지 않은 상태에 대한 정의 부터 내리고 접근하는게 필요할 것 같네요.

topkslee
  0 추천 | 약 일 년 전

보통 아래 2가지 ps 명령어와 top 명령어로 체크하는 걸 많이 합니다.

# ps -ef | grep defunct

# top -b -n 1 | grep zombie

찌롱 | 약 일 년 전

좀비상태인것을 확인하는것 이외에 이상프로세스 확인은 따로 불필요할까요?

topkslee | 약 일 년 전

위에 언급한 것 외에는 이상 프로세스를 판단하기 어렵습니다.

그때 그때 체크해보는 방법이 최선이죠