2015-01-15 3 views
1

이걸 실행하려고하는데 출력을 얻지 못했습니다. 나는 틀렸다는 것을 모릅니다. 먼저 스크립트는
2 명령 netstat -tulpun | grep -i port
이 3 그것은 여기 3 출력 4를받을 수 있습니다 (포트 & 서버 목록이 동일한 파일에) "입니다 서버에 로그인해야하지만 25 PID 출력이 아닌 다른 사람을 필요쉘 스크립트 : 다음 명령을 실행하기 위해 출력을 읽으십시오.

#!/bin/bash 
while read -r -u10 server port line 
do 
echo ========== server: "$server" port: "$port" ========== 
    ssh $line "netstat -tulpunt | grep -E \"\b$port\b\"" | awk '{print $7}' | grep '/' | awk -F '/' '{print $1}' | xargs -I % bash -c 'echo Port % && ps -ef | grep % && echo ' | grep -v grep 
done 10< demo 

업데이트 필요한 출력

서버 1
포트 1311
루트 8063 8062 0 2014? 0시 8분 6초/옵션/dm_cd -run

=====
서버 2
포트 1311
루트 6,844 6,843 0 2,014

? 0시 20분 22초을/etc/빈/리눅스/DS는

=====
Server3을
포트 8000
applmgr 1505 4215 0 2014 -run? 00:05:44/app/Apache/bin/httpd -d

+1

문제는 원격 호스트에서 실행하는 지저분한 명령 줄입니다. 그 지저분한 명령 줄에서 구문 분석해야하는 netstat 명령의 출력과 예상되는 출력을 보여주십시오. – Jdamian

+0

내가 질문을 추가했는지 확인하십시오. – Poo

+0

당신의 정규식'\ "\ b $ port \ b \"'이 이상하게 보입니다. 아마도''$ port ''와 같은 것으로 변경해야 할 것입니다. 그렇다면 출력에는 7 개의 열이없는 것 같습니다. 더 이상 테스트하지 않았습니다. 한 번에 하나의 파이프를 추가하여 단계별로 테스트 했습니까? – user3132194

답변

0

원하지 않는 출력 라인은 아마도 ps -ef 출력 (PPID, CMD)의 다른 열 또는 다른 PID의 일부로 나타나는 필요한 PID 때문일 수 있습니다. ps -efps -fp%으로 바꾸고 수정하십시오.

관련 문제