강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

프로세스관리와 파일리스팅

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

 


프로세스관리와 파일리스팅


































제작자 : 리눅스포털(www.superuser.co.kr) 수퍼유저코리아 박성수








 Kill로 죽이기 힘든 특정 프로세스들 한번에 죽이기


이번에 설명드리는 내용 또한앞의 awk와 xargs를 이용한 것입니다.

일반적으로 특정 프로세스를 확인하는 방법은 ps라는 명령어를 이용하여 다음과 같이 할 수 있습니다.


PIC2F4.gif


이것은 가장 일반적인 특정 프로세스를 확인하는 것으로 위의 예는 httpd라는 프로세스를 확인한 것입니다. 이 결과를 이용하여 다음과 같이 awk라는 것으로 이들 프로세스들의 PID값만을 출력해서 이 PID를 모두 kill로 죽이면 현재 실행되고 있는 httpd의 데몬들은 모두 죽이게 됩니다.


PIC2F5.gif


즉, 위에 대한 단계적 설명을 드리면 다음과 같습니다 .


ps ef | grep httpd

앞의 예에서 보신 바와 같이 특정 프로세스(httpd)를 모두 출력하게 됩니다.


awk {print $2}

ps의 결과중 두번째 인자가 PID를 의미하므로 각 프로세스들의 PID만을 넘겨 받습니다.


xargs kill 9

그리고 xargs로 PID들을 하나씩 넘겨 받아서 kill명령어의 시그널 9번(signal 9번)인 종료를 실행하게 됩니다.


위의 결과로 인하여 특정프로세스인httpd의 프로세스를 모두 죽이게 되는 것입니다. 결과적으로 본다면 현재 실행되고 있는 모든 아파치데몬들을 모두 종료가 되므로 웹서비스가 중단되게 됩니다.


이 방법은 리눅스뿐아니라 UNIX, Solaris, AIX등에서도 사용이 가능한 것이며 리눅스에서는 killall이라는 명령어가 있으며 간단히 "killall 프로세스명"으로 하시면 위의 결과와 동일한 결과를 얻을 수있습니다.




4-15. 파일과 디렉토리의 크기순서대로 확인하는 방법(ls 파워활용)


우리 서버관리자들은 종종 서버내에 존재하는 많은 파일들 중에 제일 큰 파일을 찾아야 할 필요성이 있습니다.  즉,  파일시스템의 풀(filesystem full)로 인하여 불필요한 파일을 급하게 찾아서 삭제를 해야 할 경우도있을 것이고,  갑작스러운 서버다운으로 인하여 예전의 core파일이 아직 서버내에 남아 있어서 큰공간을 차지하고 있는 경우도 있을 것이며,  알지못하는 특정데몬의 로그파일 관리(log rotate나 로그파일압축 또는 삭제등의 관리를 의미함)를 하지않아서 긴급하게 삭제해야하는 경우도 있을 것이며, 또한 메일큐디렉토리(대부분 /var/spool/mqueue/)나 메일스풀디렉토리(대부분 /var/spool/mail/)를 관리하지 못한(대부분 root의 메일저장 파일이 문제가 되는 경우가 많음) 결과로 인하여 서버가 다운되거나 안정되지 못하는 경우를 야기하게 될 수도 있습니다.


이런 경우를 방지하기 위하여 가끔씩 불필요하게 생성되어 있는 큰 파일을 찾아서 삭제를 해줘야합니다. 


이런 파일을 삭제하기 위해서는 큰 파일을 찾아야 합니다.  이런 큰파일을 찾기 위해서는 ls 명령어를 이용하면 간단히 해결할 수 있습니다.  문제는 이와 관련된 ls 옵션들에 대해서 정확하게 알아야 한다는 것입니다.  대략 ls 에서 사용하는 옵션은 40여가지가 있습니다.

이중 이번 절과 관련된 옵션 몇가지를 소개해 드리면 다음과 같습니다.


-R 옵션

   지정한 디렉토리이하에 있는 하부디렉토리와 파일들을 모두 포함합니다.  (Recursive)


-r 옵션

   출력결과를 정열할 때에서 내림차순으로 정렬합니다.. (Descending)


-S 옵션

   파일사이즈가 가장 큰 것부터 순서대로 나열하게 됩니다. 이번 절의 주제인 큰 사이즈의

   파일을 찾기 위해서 가장 필수적인 옵션입니다.


-l 옵션

   파일들을 나열할 때에 자세한 출력을 하게 됩니다. (파일  형태, 사용권한, 하드링크 번호, owner 이름, group 이름, 파일크기, 시간등)


-a 옵션

  경로안의 모든 파일을 나열한다. `.'으로 시작하는 파일 들도 포함됩니다.


-A 옵션

  출력결과의 파일들에서  ... 는 제외합니다.


-h 옵션

   파일사이즈를 용량단위(Megabyte, Gigabyte)를 붙여서 출력해줍니다. 

   man페이지에는 설명이 되어 있지않는 옵션입니다.


자, 그럼 다음의 예를 보시기 바랍니다.


사용 명령어 :  # ls lhRS


PIC2F6.gif

위의 명령어의 의미는 다음과 같습니다.


현재 디렉토리 이하에 존재하는 모든 파일과 디렉토리를 대상(R)으로 하여 자세한 출력(l)을 하면서 파일크기가 큰 순서대로(S) 결과를 보여줍니다. 이때에 파일사이즈를 용량단위(KB, MB, GB등)를 붙여서(h) 표시해주게 됩니다.


위의 명령어는 간단하며 우리가 일반적으로 알고있는 ls의 옵션들외에 위의 예와 같이 몇가지 옵션들만 알고 있다면 파워풀한 ls의 활용으로 서버관리에 좀더 많은 힘을얻게 될 것입니다.  


참고로 파일시스템의 사용량을 체크하려면 du라는 명령어를 사용하십시요. 이 책의 앞부분에서 설명드린 바와 같이 파일시스템의 용량을 확인하는 방법은 "du sk "또는 "du sh"를 사용하시면 됩니다.



관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  102 명