运用lsof命令苏醒删除的文书,Linux利用lsof命令苏

作者: 关于计算机  发布:2019-10-06

lsof命令

lsof命令用于查看你进程开打地铁公文,展开文件的进度,进度张开的端口(TCP、UDP)。找回/苏醒删除的文书。是不行惠及的系统监视工具,因为lsof命令需求拜会基本内存和种种文件,所以须求root客商实行。

在linux情状下,任何事物都以文件的样式存在,通过文件不但能够访谈常规数量,还足以访谈互连网连接和硬件。所以如传输调节协议(TCP) 和客商数量报公约 (UDP) 套接字等,系统在后台都为该应用程序分配了八个文件描述符,无论这些文件的真相怎么着,该公文汇报符为应用程序与功底操作系统之间的并行提供了通用接口。因为应用程序展开文件的叙说符列表提供了大批量有关那一个应用程序自个儿的音讯,由此通过lsof工具能够查阅那几个列表对系统监测以及排错将是很有赞助的。

语法

lsof(选项)

图片 1

参数

-a:列出打开文件存在的进程; 
-c<进程名>:列出指定进程所打开的文件; 
-g:列出GID号进程详情; 
-d<文件号>:列出占用该文件号的进程; 
+d<目录>:列出目录下被打开的文件; 
+D<目录>:递归列出目录下被打开的文件; 
-n<目录>:列出使用NFS的文件; 
-i<条件>:列出符合条件的进程。(4、6、协议、:端口、 @ip ) 
-p<进程号>:列出指定进程号所打开的文件; 
-u:列出UID号进程详情; 
-h:显示帮助信息; 
-v:显示版本信息。

lsof命令

使用

lsof命令用于查看你进度开打地铁公文,张开文件的经过,进程张开的端口(TCP、UDP)。找回/恢复生机删除的文书。是可怜实惠的种类监视工具,因为lsof命令必要拜访基本内存和各个文件,所以须求root客户执行。

查看

lsof -i:(端口) 查看那个端口有那么些经过在拜望,举例22端口

shell> lsof -i:22
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd     1939 root    3u  IPv4  12317      0t0  TCP *:ssh (LISTEN)
sshd     1939 root    4u  IPv6  12321      0t0  TCP *:ssh (LISTEN)
sshd     2790 root    3u  IPv4  15229      0t0  TCP 192.168.178.128:ssh->192.168.178.1:64601 (ESTABLISHED)
sshd     2824 root    3u  IPv4  15528      0t0  TCP 192.168.178.128:ssh->192.168.178.1:64673 (ESTABLISHED)
sshd     2990 root    3u  IPv4  15984      0t0  TCP 192.168.178.128:ssh->192.168.178.1:64686 (ESTABLISHED)
sshd    14695 root    3u  IPv4  39558      0t0  TCP 192.168.178.128:ssh->192.168.178.1:49662 (ESTABLISHED)

lsof输出各列音讯的意思如下:

  • COMMAND:进度的称号
  • PID:进程标识符
  • USEENVISION:进度全体者
  • FD:文件描述符,应用程序通过文件呈报符识别该文件。如cwd、txt等
  • TYPE:文件类型,如DICRUISER、REG等
  • DEVICE:钦定磁盘的名号
  • SIZE:文件的轻重缓急
  • NODE:索引节点(文件在磁盘上的标记)
  • NAME:张开文件的贴切名称

在linux情况下,任何事物都是文件的花样存在,通过文件不仅可以够访谈常规数量,还是可以够访谈网络连接和硬件。所以如传输调节合同(TCP) 和客商数据报合同 (UDP) 套接字等,系统在后台都为该应用程序分配了二个文件描述符,无论那么些文件的精神怎样,该文件陈说符为应用程序与基础操作系统之间的相互提供了通用接口。因为应用程序张开文件的陈述符列表提供了大量关于这些应用程序本身的音讯,因而通过lsof工具能够查阅这一个列表对系统监测以及排错将是很有扶持的。

苏醒文件

运用lsof能够苏醒部分系统日志,前提是以此历程必得存在。这里就拿最常用的/var/log/messages来比方表明,我们在做测验的时候最棒先备份一下。

#备份
shell> cp /var/log/message /var/log/message_bac
http://www.linuxidc.com/
shell> lsof |grep /var/log/message
rsyslogd   1737      root    1w      REG                8,2   5716123     652638 /var/log/messages

进程在运营中,接下去本人就把/var/log/messages这几个文件删掉

shell> rm /var/log/messages

删掉之后,小编再来看看这一个进度的扭转

shell> lsof |grep /var/log/messages
rsyslogd   1737      root    1w      REG                8,2   5716123     652638 /var/log/messages (deleted)

世家收看有生成了呢, 比较五个之后开采多了(deleted)。要找到这一个文件在哪还要看看这么些

PID:1737 FD:1 那大家有直接步入/proc/1737/FD/1用ll查看一下

shell> cd /proc/1737/fd/
shell> ll

total 0
lrwx------ 1 root root 64 Dec 23 13:00 0 -> socket:[11442]
l-wx------ 1 root root 64 Dec 23 13:00 1 -> /var/log/messages (deleted)
l-wx------ 1 root root 64 Dec 23 13:00 2 -> /var/log/secure
lr-x------ 1 root root 64 Dec 23 13:00 3 -> /proc/kmsg
l-wx------ 1 root root 64 Dec 23 13:00 4 -> /var/log/maillog

观看了1对应/var/log/messages (deleted),看看文件是否大家要的公文:

shell> head -5 1
Nov 14 03:11:11 localhost kernel: imklog 5.8.10, log source = /proc/kmsg started.
Nov 14 03:11:11 localhost rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1241" x-info="http://www.rsyslog.com"] start
Nov 14 03:11:11 localhost kernel: Initializing cgroup subsys cpuset
Nov 14 03:11:11 localhost kernel: Initializing cgroup subsys cpu
Nov 14 03:11:11 localhost kernel: Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bsys.dev.CentOS.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013

比较之下备份文件:

shell> head -5 /var/log/message_bac
Nov 14 03:11:11 localhost kernel: imklog 5.8.10, log source = /proc/kmsg started.
Nov 14 03:11:11 localhost rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1241" x-info="http://www.rsyslog.com"] start
Nov 14 03:11:11 localhost kernel: Initializing cgroup subsys cpuset
Nov 14 03:11:11 localhost kernel: Initializing cgroup subsys cpu
Nov 14 03:11:11 localhost kernel: Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013

对照发掘数目是平等的,恢复生机

shell> cat 1 > /var/log/messages

重复提示,复苏前提是其一进度必得存在。

本文永远更新链接地址:http://www.linuxidc.com/Linux/2016-12/138850.htm

图片 2

语法

lsof(选项)

参数

-a:列出展开文件存在的长河;

-c<进度名>:列出钦命进度所张开的文本;

-g:列出GID号进程详细的情况;

-d<文件号>:列出占用该公文号的经过;

+d<目录>:列出目录下被张开的文本;

+D<目录>:递归列出目录下被展开的文本;

-n<目录>:列出使用NFS的文件;

-i<条件>:列出切合条件的长河。(4、6、合同、:端口、 @ip )

-p<进度号>:列出钦定进程号所展开的文件;

-u:列出UID号进度实际情况;

-h:展现扶助音讯;

-v:展现版本音信。

使用

查看

lsof -i:(端口) 查看那些端口有那多少个经过在会见,比如22端口

shell> lsof -i:22 COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME sshd     1939 root    3u  IPv4  12317      0t0  TCP *:ssh (LISTEN) sshd     1939 root    4u  IPv6  12321      0t0  TCP *:ssh (LISTEN) sshd     2790 root    3u  IPv4  15229      0t0  TCP 192.168.178.128:ssh->192.168.178.1:64601 (ESTABLISHED) sshd     2824 root    3u  IPv4  15528      0t0  TCP 192.168.178.128:ssh->192.168.178.1:64673 (ESTABLISHED) sshd     2990 root    3u  IPv4  15984      0t0  TCP 192.168.178.128:ssh->192.168.178.1:64686 (ESTABLISHED) sshd    14695 root    3u  IPv4  39558      0t0  TCP 192.168.178.128:ssh->192.168.178.1:49662 (ESTABLISHED) 

lsof输出各列消息的意义如下:

  • COMMAND:进度的称谓
  • PID:进度标志符
  • USE中华V:进度全数者
  • FD:文件描述符,应用程序通过文件汇报符识别该文件。如cwd、txt等
  • TYPE:文件类型,如DIEscort、REG等
  • DEVICE:内定磁盘的称谓
  • SIZE:文件的轻重
  • NODE:索引节点(文件在磁盘上的标志)
  • NAME:打开文件的恰如其分名称

还原著件

运用lsof能够恢复部分系统日志,前提是以此历程必需存在。这里就拿最常用的/var/log/messages来比方表明,我们在做测验的时候最棒先备份一下。

#备份shell> cp /var/log/message /var/log/message_bac http://embeddedlinux.org.cn/ shell> lsof |grep /var/log/message rsyslogd   1737      root    1w      REG                8,2   5716123     652638 /var/log/messages 

进度在运维中,接下去自个儿就把/var/log/messages这几个文件删掉

shell> rm /var/log/messages 

删掉之后,我再来看看这一个历程的变化

shell> lsof |grep /var/log/messages rsyslogd   1737      root    1w      REG                8,2   5716123     652638 /var/log/messages (deleted) 

大家见到有生成了吧, 相比较四个之后察觉多了(deleted)。要找到这几个文件在哪还要看看那些

PID:1737 FD:1 那大家有一向进去/proc/1737/FD/1用ll查看一下

shell> cd /proc/1737/fd/ shell> ll  total 0 lrwx------ 1 root root 64 Dec 23 13:00 0 -> socket:[11442] l-wx------ 1 root root 64 Dec 23 13:00 1 -> /var/log/messages (deleted) l-wx------ 1 root root 64 Dec 23 13:00 2 -> /var/log/secure lr-x------ 1 root root 64 Dec 23 13:00 3 -> /proc/kmsg l-wx------ 1 root root 64 Dec 23 13:00 4 -> /var/log/maillog 

看看了1对应/var/log/messages (deleted),看看文件是否大家要的文件:

shell> head -5 1 Nov 14 03:11:11 localhost kernel: imklog 5.8.10, log source = /proc/kmsg started. Nov 14 03:11:11 localhost rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1241" x-info="http://www.rsyslog.com"] start Nov 14 03:11:11 localhost kernel: Initializing cgroup subsys cpuset Nov 14 03:11:11 localhost kernel: Initializing cgroup subsys cpu Nov 14 03:11:11 localhost kernel: Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bsys.dev.CentOS.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013 

比较备份文件:

shell> head -5 /var/log/message_bac Nov 14 03:11:11 localhost kernel: imklog 5.8.10, log source = /proc/kmsg started. Nov 14 03:11:11 localhost rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1241" x-info="http://www.rsyslog.com"] start Nov 14 03:11:11 localhost kernel: Initializing cgroup subsys cpuset Nov 14 03:11:11 localhost kernel: Initializing cgroup subsys cpu Nov 14 03:11:11 localhost kernel: Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013 

对待开掘数目是大同小异的,恢复生机

shell> cat 1 > /var/log/messages 

双重提醒,苏醒前提是以此历程必得存在。

【编辑推荐】

本文由今晚买四不像发布于关于计算机,转载请注明出处:运用lsof命令苏醒删除的文书,Linux利用lsof命令苏

关键词:

上一篇:PHP和AJAX的RSS阅读器
下一篇:没有了