lsof

lsof也是Linux中比较常用的命令,是list open files的简写,在Linux系统中,一切皆为文件。

查看端口使用信息

(ENV) [root@ceph-2 log]# lsof -i:9090
COMMAND    PID      USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
openresty 1550      root    6u  IPv4  31792      0t0  TCP ceph-2:websm (LISTEN)
prometheu 1591      root    5u  IPv4  29207      0t0  TCP localhost:websm (LISTEN)
prometheu 1591      root    6u  IPv4  31813      0t0  TCP localhost:57564->localhost:websm (ESTABLISHED)
prometheu 1591      root    7u  IPv4  29208      0t0  TCP localhost:websm->localhost:57564 (ESTABLISHED)
openresty 1679 nfsnobody    6u  IPv4  31792      0t0  TCP ceph-2:websm (LISTEN)
openresty 1680 nfsnobody    6u  IPv4  31792      0t0  TCP ceph-2:websm (LISTEN)
openresty 1681 nfsnobody    6u  IPv4  31792      0t0  TCP ceph-2:websm (LISTEN)
openresty 1682 nfsnobody    6u  IPv4  31792      0t0  TCP ceph-2:websm (LISTEN)

查看数据库连接信息

lsof -Pni:5432 | fgrep ">" | fgrep -i established | wc -l

恢复打开但被删除的文件

首先,我们删掉/var/log/maillog 文件,然后调用lsof命令查看哪个进程占用了该文件,加上-w选项是抑制warning信息。

+|-w     Enables (+) or disables (-) the suppression of warning messages.

如下所示,maillog文件已经被删除,但是还被进程619占用。

(ENV) [root@ceph-2 log]# lsof -w | grep deleted
rsyslogd    619                 root    9w      REG                8,1       1942   33576309 /var/log/maillog (deleted)
in:imjour   619   639           root    9w      REG                8,1       1942   33576309 /var/log/maillog (deleted)
rs:main     619   640           root    9w      REG                8,1       1942   33576309 /var/log/maillog (deleted)
java       1613                 1000  248r     FIFO                8,1        0t0     374779 /usr/share/elasticsearch/tmp/controller_log_1 (deleted)

查看/proc文件系统中进程619的fd信息。

(ENV) [root@ceph-2 log]# ll /proc/619/fd
total 0
lr-x------ 1 root root 64 Apr 11 23:30 0 -> /dev/null
l-wx------ 1 root root 64 Apr 11 23:30 1 -> /dev/null
l-wx------ 1 root root 64 Apr 11 23:30 2 -> /dev/null
lrwx------ 1 root root 64 Apr 11 23:30 3 -> socket:[22724]
l-wx------ 1 root root 64 Apr 11 23:30 4 -> /var/log/messages
lr-x------ 1 root root 64 Apr 11 23:30 5 -> /run/log/journal/93978c1c45e54d1e8843cc4727b1f26e/system.journal
lr-x------ 1 root root 64 Apr 11 23:30 6 -> anon_inode:inotify
l-wx------ 1 root root 64 Apr 11 23:30 7 -> /var/log/secure
l-wx------ 1 root root 64 Apr 11 23:30 8 -> /var/log/cron
l-wx------ 1 root root 64 Apr 11 23:30 9 -> /var/log/maillog (deleted)

使用重定向恢复。

(ENV) [root@ceph-2 log]# cat /proc/619/fd/9 > maillog

对于删除文件后空间不释放的情况

可以进行如下操作:

lsof +L1
to find out which process is using a deleted (unlinked) file.

root@t25:/proc/3591/fd# lsof +L1
COMMAND    PID USER   FD   TYPE DEVICE  SIZE/OFF NLINK      NODE NAME
systemd-j 1352 root   41u   REG  253,0   8388608     0  54726495 /var/log/journal/e7f80dcce5d34395b4f4d546dccb0dc6/user-1000@9775dbb6fdbb4d04a9837fd07a7dd92b-0000000000000000-0000000000000000.journal (deleted)
unattende 2719 root    3w   REG  253,0       112     0  54724830 /var/log/unattended-upgrades/unattended-upgrades-shutdown.log.1 (deleted)
glusterev 2839 root    3u   REG   0,23         5     0      1490 /run/glustereventsd.pid (deleted)
kubelet   2983 root  txt    REG  253,0 200816272     0 224461090 /usr/local/bin/.~tmp~/kubelet (deleted)
glusterfs 3591 root  269u   REG  253,0         0     0 208468691 /glusterfs/perception_labeled_data/.glusterfs/unlink/5a4ab33a-0729-4e20-96ac-4d1a44811433 (deleted)

root@t25:/proc/3591/fd# ls -al 269
lrwx------ 1 root root 64 Aug 10 09:02 269 -> '/glusterfs/perception_labeled_data/.glusterfs/unlink/5a4ab33a-0729-4e20-96ac-4d1a44811433 (deleted)'

type "> FD" to reclaim that space

eg:
> 269
You might need to repeat the operation if there are other processes holding the file.


查看运行某命令的进程打开的文件

使用-c选项查看运行某命令的进程打开的文件。如果-c选项跟着的进程名前面有^,代表忽略或排除此command的进程。

(ENV) [root@ceph-2 ~]# lsof -c prometheus
COMMAND    PID USER   FD      TYPE   DEVICE  SIZE/OFF      NODE NAME
prometheu 1591 root  cwd       DIR      8,1       267 202737052 /prometheus
prometheu 1591 root  rtd       DIR      8,1       166 102497690 /
prometheu 1591 root  txt       REG      8,1  57884414 169372405 /bin/prometheus
prometheu 1591 root    9r      REG      8,1 536845001 203327013 /prometheus/01E4TPBR3PZW9N9Y4WKA94CQMG/chunks/000001
prometheu 1591 root   10r      REG      8,1 297192670 203327015 /prometheus/01E4TPBR3PZW9N9Y4WKA94CQMG/chunks/000002
prometheu 1591 root   11r      REG      8,1  31754494 169745385 /prometheus/01E4TPBR3PZW9N9Y4WKA94CQMG/index
prometheu 1591 root   12r      REG      8,1 171489821 135815646 /prometheus/01E5KJW61K2D04E2XND660JQPX/chunks/000001
prometheu 1591 root   13r      REG      8,1   5377477 102777587 /prometheus/01E5KJW61K2D04E2XND660JQPX/index
prometheu 1591 root   15r      REG      8,1  19142330  35714626 /prometheus/01E5MW2BCSQDCZTTRSXYZPVSCF/chunks/000001
prometheu 1591 root   16r      REG      8,1   8522570 335544532 /prometheus/01E5BVP5DV4F05VMP1WC4KSKNN/index

查看某一进程打开的文件数量

[root@xsclaer-239 ~]# lsof -p 385279 | wc -l
20887

查看某端口的连接情况

[root@xsclaer-239 ~]# lsof -i4 -n -P | grep 8051 | wc -l
28098

# 从中也可以看出是哪个程序连接的
 1 openresty 332229 nfsnobody   18u  IPv4 84619305      0t0  TCP 127.0.0.1:35403->127.0.0.1:8051 (ESTABLISHED)
  2 openresty 332229 nfsnobody   20u  IPv4 76735473      0t0  TCP 127.0.0.1:56224->127.0.0.1:8051 (ESTABLISHED)
  3 prometheu 332304      root    9u  IPv4 29130144      0t0  TCP 10.0.11.239:48622->10.0.11.238:8051 (ESTABLISHED)
  4 prometheu 332304      root   10u  IPv4 29115246      0t0  TCP 10.0.11.239:48626->10.0.11.238:8051 (ESTABLISHED)
  5 prometheu 332304      root   11u  IPv4 29130145      0t0  TCP 10.0.11.239:48634->10.0.11.238:8051 (ESTABLISHED)
  6 prometheu 332304      root   12u  IPv4 29115251      0t0  TCP 10.0.11.239:48644->10.0.11.238:8051 (ESTABLISHED)
  7 prometheu 332304      root   17u  IPv4 29115252      0t0  TCP 10.0.11.239:48648->10.0.11.238:8051 (ESTABLISHED)
  8 prometheu 332304      root   18u  IPv4 29115253      0t0  TCP 10.0.11.239:48650->10.0.11.238:8051 (ESTABLISHED)
  9 prometheu 332304      root   19u  IPv4 29130147      0t0  TCP 10.0.11.239:48652->10.0.11.238:8051 (ESTABLISHED)
 10 prometheu 332304      root   20u  IPv4 29136124      0t0  TCP 10.0.11.239:48658->10.0.11.238:8051 (ESTABLISHED)
 11 prometheu 332304      root   21u  IPv4 29136125      0t0  TCP 10.0.11.239:48664->10.0.11.238:8051 (ESTABLISHED)
 12 prometheu 332304      root   22u  IPv4 29100979      0t0  TCP 10.0.11.239:48680->10.0.11.238:8051 (ESTABLISHED)
 13 prometheu 332304      root   23u  IPv4 29115255      0t0  TCP 10.0.11.239:48682->10.0.11.238:8051 (ESTABLISHED)
 14 prometheu 332304      root   24u  IPv4 29112130      0t0  TCP 10.0.11.239:38736->10.0.11.239:8051 (ESTABLISHED)
 15 prometheu 332304      root   25u  IPv4 29126119      0t0  TCP 10.0.11.239:38738->10.0.11.239:8051 (ESTABLISHED)

顺便提一下另一个命令fuser,如果希望查找挂载目录还有哪些进程使用或占用,可以使用-c选项,-c选项与-m选项类似,可以列出访问此文件系统的所有进程,-v选项为verbose。

(ENV) [root@ceph-2 mount]# fuser -cv /mount/
                     USER        PID ACCESS COMMAND
/mount:              root     kernel mount /mount
                     root      17478 ..c.. bash
                     root      22141 F.c.. vim

扩展

查看系统的文件句柄数

(ENV) [root@ceph-2 ~]# cat /proc/sys/fs/file-max
1610634
(ENV) [root@ceph-2 ~]# cat /proc/sys/fs/file-nr
11168   0       1610634
(ENV) [root@ceph-2 ~]# sysctl -w fs.file-max=2000000
fs.file-max = 2000000

References

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,295评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,928评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,682评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,209评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,237评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,965评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,586评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,487评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,016评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,136评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,271评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,948评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,619评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,139评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,252评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,598评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,267评论 2 358

推荐阅读更多精彩内容