Chinaunix首页 | 论坛 | 博客
  • 博客访问: 50288
  • 博文数量: 12
  • 博客积分: 456
  • 博客等级: 下士
  • 技术积分: 125
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-12 14:38
文章分类

全部博文(12)

文章存档

2011年(1)

2010年(1)

2009年(10)

我的朋友

分类: LINUX

2009-11-02 11:52:52

# 如下 lsof 可以找到进程的路径, 但是功能强大的 lsof 性能实在不敢恭维~,因此写了个脚本。
#lsof -c /tdpcheck_p/i -a -d cwd
#lsof -c /tdpcheck_p/i -a -d txt
#lsof -F?
#lsof -F -c tdpcheck_p -a -d cwd
#lsof -Fn -c tdpcheck_p -a -d cwd
#lsof -Fn -c cws -a -d txt
#lsof -i tcp:80 -P
#!/bin/sh

FILE=/tmp/tmp0
# 80 端口的16进制
PORT=0050
echo `date` > $FILE
echo "PORT="$PORT  >> $FILE
echo "" >> $FILE
less /proc/net/tcp_listen > tmp1
echo "================step 1." >> $FILE
cat tmp1 >> $FILE
INODE=`sed -n '/0050/p' tmp1 | tr -s ' ' ' ' | cut -d' ' -f11`
echo "INODE="$INODE >> $FILE
ls /proc/*/fd -l | grep "/proc/[0-9]*/fd:\|socket:/\{0,1\}\[$INODE\]" > tmp2
echo "" >> $FILE
echo "================step 2." >> $FILE
cat tmp2 >> $FILE
echo "" >> $FILE
echo "================step 3." >> $FILE
INODE_LINE=`grep -n "socket:/\{0,1\}\[$INODE\]" tmp2 | head -1 | cut -d':' -f1`
INODE_LINE=$((INODE_LINE-1))
echo "INODE_LINE="$INODE_LINE >> $FILE
sed -n "${INODE_LINE}p" tmp2 > tmp3
cat tmp3 >> $FILE
PID=`sed 's/\/fd:$//' tmp3 | sed 's/^\/proc\///'`
echo "PID="$PID >> $FILE
#rm tmp1
#rm tmp2
#rm tmp3
ls -l "/proc/$PID/exe" | sed 's/^.*exe -> //' >> $FILE
阅读(728) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~