免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5364 | 回复: 11

[SCO UNIX] SCO 下如何找到某一端口对应的进程号? [复制链接]

论坛徽章:
0
发表于 2010-12-02 16:47 |显示全部楼层
我试过用 ps ,可惜只能够找到 进程,没法找到对应对应的进程;如果用netstat,也只能找到端口,可惜找不到端口对应的进程,无语啊。
请告诉赐教!

论坛徽章:
0
发表于 2010-12-02 22:32 |显示全部楼层
lsof

论坛徽章:
1
15-16赛季CBA联赛之北控
日期:2022-03-04 22:35:50
发表于 2010-12-03 09:01 |显示全部楼层
Lsof是一个非常强大的unix诊断工具。它可以列出当前系统正在运行进程所打开的所有文件的信息。他可以指出哪些进行正在进行网络连接以及使用什么端口。

下载(先注册):
http://unix-cd.com/unixcd12/down_750.html

论坛徽章:
0
发表于 2010-12-03 21:15 |显示全部楼层
SCO 系统下没有这个命令

论坛徽章:
1
15-16赛季CBA联赛之北控
日期:2022-03-04 22:35:50
发表于 2010-12-03 21:22 |显示全部楼层
给你下载地址了

论坛徽章:
0
发表于 2010-12-03 22:28 |显示全部楼层
# ./lsof
lsof: WARNING: can't stat() file system 224
/dev/stand      /stand  bfs     rw      1280442227
糒怘
      Output information may be incomplete.
lsof: WARNING: can't stat() file system dev/fd  /dev/fd fdfs    rw      1280442275
/dev/_糒怘
      Output information may be incomplete.
lsof: WARNING: can't stat() file system 75
/dev/dsk/c0b0t0d0s4     /home   vxfs    rw,log糒怘
      Output information may be incomplete.
lsof: WARNING: can't stat() file system k/c0b0t0d0sd    /tmp    vxfs    rw,log,suid,noquo糒怘
      Output information may be incomplete.
lsof: WARNING: can't stat() file system em/processor    processorfs     rw      1280442290
/糒怘
      Output information may be incomplete.
lsof: WARNING: can't stat() file system         rw,log,suid,noquota     1280442291
/dev/dsk糒怘
      Output information may be incomplete.
lsof: WARNING: can't stat() file system uid,noquota     1280442292
/dev/dsk/c0b0t0d0糒怘
      Output information may be incomplete.
lsof: can't read kernel name list from /unix

论坛徽章:
0
发表于 2010-12-03 22:29 |显示全部楼层
一堆错啊,我的系统是 SCO UNIX 7

论坛徽章:
1
15-16赛季CBA联赛之北控
日期:2022-03-04 22:35:50
发表于 2010-12-04 01:45 |显示全部楼层
这个lsof是openserver 5下的,unixware下可能不行

论坛徽章:
1
15-16赛季CBA联赛之北控
日期:2022-03-04 22:35:50
发表于 2010-12-04 09:26 |显示全部楼层
lsof 工具介绍

lsof,它对应于“list open files”(列出打开的文件)。挺不错的一个工具,通过查看打开的文件,了解更多关于系统的信息。了解应用程序打开了哪些文件或者哪个应用程序打开了特定的文件,作为系统管理员,这将使得您能够作出更好的决策。lsoflsof的全称是list open files),此工具可以用来查看正在运行中的进程打开了哪些文件、目录和套接字;是系统监测工具之一。在服务器管理中,我们还是常用到这个工具的。 lsof 的示例输出

[root@localhost /]# lsof | more

COMMAND
PID
USER
FD
TYPE
DEVICE
SIZE
NODE NAME

init
1
root
cwd
DIR
8,2
4096
2 /

init
1
root
rtd
DIR
8,2
4096
2 /

init
1
root
txt
REG
8,2
27036
160856 /sbin/init

init
1
root
mem
REG
8,2
103044
160173 /lib/ld-2.3.2.so

init
1
root
mem
REG
8,2
1531064
176174 /lib/tls/libc-2.3.2.so

init
1
root
10u
FIFO
8,2
71826 /dev/initctl

。。。。。。

每行显示一个打开的文件,除非另外指定,否则将显示所有进程打开的所有文件。

COMMAND
表示进程的名称

PID
进程标识符 (PID)

USER
所有者名称

DeviceSIZE/OFFNode

Name
列涉及到文件本身的信息

FD

Type
列的含义最为模糊,它们提供了关于文件如何使用的更多信息。

FD
FD列表示文件描述符,应用程序通过文件描述符识别该文件
FD三种不同的值。cwd
值表示应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改。txt
类型的文件是程序代码,如应用程序二进制文件本身或共享库,再比如本示例的列表中显示的
init
程序。最后,数值表示应用程序的文件描述符,这是打开该文件时返回的一个整数。

TYPE
Type
列提供了关于文件格式的更多描述
Type
列则比较直观。根据具体操作系统的不同,您会发现将文件和目录称为
REG

DIR(在 Solaris 中,称为
VREG

VDIR)。其他可能的取值为
CHR

BLK,分别表示字符和块设备;或者
UNIXFIFO

IPv4,分别表示 UNIX 域套接字、先进先出 (FIFO) 队列和网际协议 (IP) 套接字。

DEVICE
表示指定磁盘的名称

SIZE
文件的大小

NODE
索引节点(文件在磁盘上的标识)

NAME
该文件的确切名称

/proc 目录

/proc 是一个目录,其中包含了反映内核和进程树的各种文件。这些文件和目录并不存在于磁盘中,因此当您对这些文件进行读取和写入时,实际上是在从操作系统本身获取相关信息。大多数与
lsof
相关的信息都存储于以进程的 PID 命名的目录中,所以 /proc/1234 中包含的是 PID 1234 的进程的信息。

/proc 目录的每个进程目录中存在着各种文件,它们可以使得应用程序简单地了解进程的内存空间、文件描述符列表、指向磁盘上的文件的符号链接和其他系统信息。lsof
实用程序使用该信息和其他关于内核内部状态的信息来产生其输出。

Lsof用法列表:

1) lsof abc.txt 显示开启文件abc.txt的进程

2) lsof -i :22 知道22端口现在运行什么程序

3) lsof -c nsd 显示nsd进程现在打开的文件

4) lsof -g gid 显示归属gid的进程情况

5) lsof +d /usr/local/ 显示/usr/local目录下被进程开启的文件

6) lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长

7) lsof -d 4 显示使用fd4的进程

lsof -i 用以显示符合条件的进程情况

语法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]

46 --> IPv4 or IPv6

protocol --> TCP or UDP

hostname --> Internet host name

hostaddr --> IPv4位置

service --> /etc/service中的 service name (可以不只一个)

port --> 端口号 (可以不只一个)

例子: TCP:25 - TCP and port 25

@1.2.3.4 - Internet IPv4 host address 1.2.3.4

tcp@ohaha.ks.edu.tw:ftp - TCP protocol hosthaha.ks.edu.tw service name:ftp

9) lsof -n 不将IP转换为hostname,缺省是不加上-n参数

例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n

10) lsof -p 12 看进程号为12的进程打开了哪些文件

11) lsof +|-r [t] 控制lsof不断重复执行,缺省是15s刷新

-rlsof会永远不断的执行,直到收到中断信号

+rlsof会一直执行,直到没有档案被显示

例子:不断查看目前ftp连接的情况:lsof -i tcp@ohaha.ks.edu.tw:ftp -r

12) lsof -s 列出打开文件的大小,如果没有大小,则留下空白

13) lsof -u username UID,列出打开的文件

-a
它表示当所有的参数都为真时,才显示这个文件

-p
它限制仅输出 PID为多少的进程

常用的用法解释:

查看某个文件被哪些进程在读写

lsof 文件名

查看某个进程打开了哪些文件

lsof c 进程名

lsof p 进程号

查看对文件系统的使用

Lsof 文件系统名称

查找打开,但是不能连接的文件

一个进程打开一个文件, 然后将其设为 unlinked 状态, 则此文件资源仍能被进程使用, 但是其访问路径已经被删除了. 因此, 使用ls不能将其列出. 只有当进程结束时, 才能释放文件占用的资源;查找unlinked 文件, 选项 +L,

列出打开文件的连接数

lsof +L

指定连接数的上限

$lsof +L1

同时指定文件系统, 则需要使用 -a(AND) 选项

lsof -a +L1 /home

查看谁令mount的分区无法卸载

lsof <file_system_name>

查看网络服务

lsof –i

查看某个网络连接

lsof -i@aaa.bbb.ccc

lsof -iTCP@aaa.bbb.ccc:ftp-data *指定协议*

lsof -i4 *指定IP版本*

lsof -i6

查找针对某个命令打开的文件

使用命令的PID

lsof -p <ID>

使用命令名称

lsof -c <first_characters_of_command_name_that_interest_you>

lsof -c sendmail

查看谁在使用设备文件

lsof /dev/hda6

查看某个用户的操作

lsof -u UID

lsof -u 用户名

lsof -u ^用户名
^
取反的意思

论坛徽章:
0
发表于 2010-12-04 16:28 |显示全部楼层
我安装的unixware 7.1.3自带lsof,7.1.4应该也有自带。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP