리눅스					분류
				
						쉘스크립트 설명좀 부탁드립니다.
작성자 정보
- 김재명 작성
 - 작성일
 
컨텐츠 정보
- 4,842 조회
 - 3 댓글
 - 0 추천
 - 목록
 
본문
				3.  간단한 예제
특정 프로세의 수를 세어 10개 이상이면 콘솔상에 특정 문자를 출력하는
것에 대해서 알아보자
-------------------------------------------------------------------------------
#!/bin/bash
process_name="httpd"
process_max_cnt="10"
process_cnt="`ps -ef | grep $process_name | grep -v "grep" | wc -l`"
if [ "$process_cnt" -gt "$process_max_cnt" ] ; then
echo " $process_name : $process_cnt "
fi
-------------------------------------------------------------------------------
위와같이 작성이 된다면 httpd라는 프로세서의 갯수가 10개 초과이라면
해당 스크립트를 실행시킬시에 "httpd : 11" 과 같은 형식으로 출력이 된다 .
					
			
				
			
		특정 프로세의 수를 세어 10개 이상이면 콘솔상에 특정 문자를 출력하는
것에 대해서 알아보자
-------------------------------------------------------------------------------
#!/bin/bash
process_name="httpd"
process_max_cnt="10"
process_cnt="`ps -ef | grep $process_name | grep -v "grep" | wc -l`"
if [ "$process_cnt" -gt "$process_max_cnt" ] ; then
echo " $process_name : $process_cnt "
fi
-------------------------------------------------------------------------------
위와같이 작성이 된다면 httpd라는 프로세서의 갯수가 10개 초과이라면
해당 스크립트를 실행시킬시에 "httpd : 11" 과 같은 형식으로 출력이 된다 .
위의 예제에서 process_cnt="`ps -ef  | grep $process_name | grep -v "grep" | wc -l`"를 잘 풀어서 설명해주시분 안계신가요?
파이프가 여러개가 들어가 있으니까 너무 어렵네요
기본적인것도 모르는 초보에게 설명을 부탁드립니다.
			관련자료
- 
			이전
 - 
			다음
 
			댓글 3
					
			아카샤님의 댓글
- 아카샤
 - 작성일
 
					
										
					해당 문장은 쉘스크립트 문제라기 보다... 
ps -ef | grep $process_name | grep -v "grep" | wc -l
이부분을 이해하시면 될것 같은데....
공부하시는 거라면.... ps,grep,wc 명령어와 옵션에 대해 알아보시면 금방 이해가 되실 것 같네요^^
												ps -ef | grep $process_name | grep -v "grep" | wc -l
이부분을 이해하시면 될것 같은데....
공부하시는 거라면.... ps,grep,wc 명령어와 옵션에 대해 알아보시면 금방 이해가 되실 것 같네요^^
박신주님의 댓글
- 박신주
 - 작성일
 
					
										
					파이프의 역할이 무엇인지는 아시죠? " | " 앞의 결과를 " | " 뒤의 입력으로 받아들이는거..
차례대로 풀어나가면 됩니다.
실행순서는
ps -ef : 현재 실행중인 프로세스 정보들을 출력합니다.
ps -ef | grep $process_name : 현재 실행중인 프로세스 정보들을 출력하여 $process_name 문구를 포함하는 줄을 찾아서 출력합니다.
ps -ef | grep $process_name | grep -v "grep" : 현재 실행중인 프로세스 중에 $process_name 문구를 포함하는 줄을 찾고 grep 이라는 단어가 들어가는 줄은 제외시키고 출력합니다.
ps -ef | grep $process_name | grep -v "grep" | wc -l : 현재 실행중인 프로세스 중에 $process_name 문구를 포함하는 줄을 찾고 grep 이라는 단어가 들어가는 줄은 제외시키고 남은 줄 수를 출력합니다.
이해되시나요?
												차례대로 풀어나가면 됩니다.
실행순서는
ps -ef : 현재 실행중인 프로세스 정보들을 출력합니다.
ps -ef | grep $process_name : 현재 실행중인 프로세스 정보들을 출력하여 $process_name 문구를 포함하는 줄을 찾아서 출력합니다.
ps -ef | grep $process_name | grep -v "grep" : 현재 실행중인 프로세스 중에 $process_name 문구를 포함하는 줄을 찾고 grep 이라는 단어가 들어가는 줄은 제외시키고 출력합니다.
ps -ef | grep $process_name | grep -v "grep" | wc -l : 현재 실행중인 프로세스 중에 $process_name 문구를 포함하는 줄을 찾고 grep 이라는 단어가 들어가는 줄은 제외시키고 남은 줄 수를 출력합니다.
이해되시나요?
김재명님의 댓글
- 김재명
 - 작성일
 
					
										
					고맙습니다. 큰 도움이 되었습니다. 친절한 설명 감사합니다.
				
												
								