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
pfiles 1003 |grep 'port:'
sockname: AF_INET 0.0.0.0 port: 8012