DATA 전문가로 가는 길

[Linux/Unix] lsof 명령어 없을시 해당 포트/프로세스 ID 검출하는 방법 본문

OS/Fundamental

[Linux/Unix] lsof 명령어 없을시 해당 포트/프로세스 ID 검출하는 방법

EstenPark 2010. 1. 27. 14:58

보통 lsof 명령어로 할 수 있는 작업입니다. 그렇지만 대다수의 Unix 서버에는 lsof 명령어가 없습니다.

그래서 간단하게 bash 쉘로 검출하는 스크립트를 만들어 봤습니다.

1. Port가 사용하는 Process(프로세스ID)를 찾아내는 방법

#!/usr/bin/bash

port=$1
for proc in `ptree -a | grep -v ptree | awk '{print $1};'`
do
result=`pfiles $proc 2> /dev/null| grep "port: $port"`
if [ ! -z "$result" ]
then
program=`ps -fo comm -p $proc | /usr/bin/tail -1`
ps -ef | grep  $proc | grep -v grep
fi
done



2. Process(프로세스 ID)로 Port 확인 하는 방법
pfiles [ PID ]
pfiles 1003 |grep 'port:'

 sockname: AF_INET 0.0.0.0  port: 8012


Comments