lsof

一、 文件正在被哪些程序访问?

root@HostOS:~# lsof |grep /var/log/auth.log|head -1 
rsyslogd   1043                syslog    5w      REG              252,0      466     662537 /var/log/auth.log
root@HostOS:~# ps -ef|grep "1043"|grep -v grep          
syslog     1043      1  0  2020 ?        00:00:00 /usr/sbin/rsyslogd -n

二、恢复误删文件

假如误删了/var/log/auth.log,一下步骤可以恢复
1. lsof | grep /var/log/auth.log
rsyslogd    854           syslog    7w      REG              252,0      94294     787421 /var/log/auth.log (deleted)
in:imuxso   854   877     syslog    7w      REG              252,0      94294     787421 /var/log/auth.log (deleted)
in:imklog   854   878     syslog    7w      REG              252,0      94294     787421 /var/log/auth.log (deleted)
rs:main     854   879     syslog    7w      REG              252,0      94294     787421 /var/log/auth.log (deleted)
2. tailf /proc/854/fd/7
3. cat /proc/854/fd/7 > /tmp/auth.log

三、lsof常用命令

1. 列出系统里所有的网络连接
   lsof -i
2. 列出test用户打开的文件
   lsof -u test
3. 列出sshd程序所访问的文件
  lsof -c sshd
4. 列出某个进程所访问的文件
  lsof -p PID
5. 递归查看test目录下的文件信息
  lsof +D /home/test/
6. 遍历test目录下所有文件
  lsof | grep ‘/home/test’
7. 列出所有tcp连接
  lsof -i tcp
8. 列出所有udp连接
  lsof -i udp
9. 列出什么进程在使用端口tcp 22端口
  lsof -i tcp:22

 

posted @ 2020-12-30 22:42  一个门外汉  阅读(48)  评论(0编辑  收藏  举报