2012-11-27 6 views
0

정의 된 범위 내에서 PHP 서비스에 의해 점유 된 포트 목록을 얻으려고합니다.egrep 복수 AND가 범위 쿼리

이 확인을 작동하는 것 같다 ..

lsof | grep -E 'php.+55000.+LISTEN' 
php  6446 user 11u  IPv4    694089  0t0  TCP *:55000 (LISTEN) 

나는 범위 쿼리가

lsof | grep -E 'php.+[55000-55001].+LISTEN' 
php  6446 user 11u  IPv4    694089  0t0  TCP *:55000 (LISTEN) 
php  6446 user 12u  IPv4    694090  0t0  TCP *:51000 (LISTEN) 

이 도와주세요 정확한 결과를 제공하지 않는 것 할 때, 내 정규식 기술은 아마추어.

+0

그래서 포트 5500과 55001에서 실행되는 PHP 프로세스를 원하십니까? 그렇지? – andrefsp

+0

해당 포트 범위에서 실행중인 프로세스가 있는지 알고 싶습니다. 예. 결과에 51000이 나타나서는 안됩니다. –

+0

확인. lsof -i : 55000-55001 맨 페이지에 -i 옵션을 사용하고 포트 범위를 전달할 수 있다고 나와 있습니다. – andrefsp

답변

2

당신이 찾고있는 것은 lsof -i 옵션입니다. 매뉴얼 페이지는 말한다 :

To list all files using any protocol on ports 513, 514, or 515 of host wonderland.cc.purdue.edu, use: 

     lsof -i @wonderland.cc.purdue.edu:513-515 

그래서 귀하의 경우에 당신이 시작할 수 있습니다

lsof -i :55000-55001 

그리고 당신이 당신의 답변을 얻을하는 데 필요한 모든 GREP을 사용하여보다.

감사합니다.

+0

+1 깨끗한 방법 – Kent

0

이 방법이 유용합니까? (포트 범위 55000-60000)

lsof|awk '$2>55000 && $2<60000 && /php/ && /LISTEN/'