【命令:lsof】(全称:list open file)
用法:查询进程打开的文件(注意:linux中一切皆文件)
命令格式:lsof [option] filename (option可有可无)
注意:该命令只能用 root 账号来执行
字段解释:
COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件
TYPE:文件类型,如DIR、REG等
DEVICE:磁盘的名称
SIZE:文件大小
NODE:索引节点
NAME:打开文件的全路径名称
<<<安装lsof>>>
[root@localhost ~] yum install lsof-y
<<<查找使用了某个端口的进程>>>
[root@localhost ~]lsof -i:22 (查询当前占用22端口的进程)
<<<恢复被删除的文件>>>(前提条件:文件正在被某个进程使用,且该进程未停止)
例子如下:假设文件/var/log/messages被删除,先需要找回,首先需确认当前是否有进程正在使用这个文件,有的话可以继续,没有的话则无法恢复
[root@localhost ~] lsof | grep /var/log/messages(查看到的结果发现pid为2449的进程正在使用该文件)
[root@localhost ~] cat /proc/2449/fd/2 > /var/log/messages
[root@localhost ~] Service syslogd restart