1、查看进程
ps -aux | grep tomcat
2、查看端口
netstat –apn
netstat –apn | grep 8080
3、lsof
lsof(list open files)是一个列出当前系统打开文件的工具。
在Linux中任何事物都是以文件的形式存在,包括网络和硬件连接。TCP和UDP套接字,系统都在后台为其分配了一个文件描述符,为应用程序和操作系统之间的交互提供了通用的接口。
在终端中输入lsof命令即可查看当前打开的文件,由于需要访问核心内存和文件,所以需要root身份才能调用。
COMMAND | PID | USER | FD | TYPE | DEVICE | SIZE | NODE | NAME |
---|---|---|---|---|---|---|---|---|
进程的名称 | 进程标识符 | 进程所有者 | 文件描述符 | 文件类型 | 指定磁盘的名称 | 文件的大小 | 索引节点 | 打开文件的确切名称 |
init | 1 | root | cwd | DIR | 3,3 | 1024 | 2 | / |
init | 1 | root | rtd | DIR | 3,3 | 1024 | 2 | / |
init | 1 | root | txt | REG | 3,3 | 38432 | 1763452 | /sbin/init |
init | 1 | root | mem | REG | 3,3 | 106114 | 1091620 | /lib/libdl-2.6.so |
init | 1 | root | mem | REG | 3,3 | 7560696 | 1091614 | /lib/libc-2.6.so |
init | 1 | root | mem | REG | 3,3 | 79460 | 1091669 | /lib/libselinux.so.1 |
init | 1 | root | mem | REG | 3,3 | 223280 | 1091668 | /lib/libsepol.so.1 |
init | 1 | root | mem | REG | 3,3 | 564136 | 1091607 | /lib/ld-2.6.so |
init | 1 | root | 10u | FIFO | 0,15 | 1309 | /dev/initctl |
type, 文件和目录分别称为REG和DIR,而CHR 和 BLK,分别表示字符和块设备;或者 UNIX、FIFO 和 IPv4,分别表示 UNIX 域套接字、先进先出 (FIFO) 队列和网际协议 (IP) 套接字。
lsof常见的用处是程序打开的文件的名称和数目。可以查找出某个特定的应用程序将日志数据记录到了何处,或者正在跟踪某个问题。
lsof filename //显示打开文件的所有进程
lsof -i //显示所有打开的端口
lsof -i :22 //查看端口运行的情况,注意格式
lsof -i @192.168.1.111 //查看远程已打开的网络连接(连接到192.168.1.111)
lsof -i UDP@[url]www.akadia.com:123 //显示那些进程打开了到www.akadia.com的UDP的123(ntp)端口的链接
lsof -a -u root -d txt //查看root用户进程打开的txt类型的文件
lsof -c sendmail //查看sendmail进程的文件使用情况,-c显示进程打开的文件
lsof /dev/cdrom //那个进程在占用光驱
lsof /mydata/ //找出那些进程在使用当前文件系统,若有使用,可能不能正常卸载文件系统
恢复被删除的文件
当进程打开某个文件时,即使这个文件被删除了,它依然存在于磁盘中,该进程并不知道这个文件已经被删除了,它仍然可以向打开文件时提供给她的描述符的位置读写文件。但是除了这个进程之外,其他的进程是看不到这个文件的,因为已经删除了相应的目录索引节点。
/proc目录下,其中包含了反应内核和进程树的各种文件。/proc目录中挂载的是在内存中所映射的区域,我们对这些文件进行读写,实际上是从内存中获取相关信息。大多数与lsof相关的信息都存储在以进程的PID命名的目录中,即/proc/1234,包含的是PID为1234的进程的信息。
当系统中的某个文件被意外删除了,只要还有进程正在访问该文件,我们就可以使用lsof从/proc目录将该文件恢复。
比如错误的将/var/log/messages文件删掉了
losf | grep /var/log/messages //查看当前是否有进程使用该文件
syslogd 1283 root 2w REG 3,3 5381017 1773647 /var/log/messages (deleted)
可以看到PID 1283(syslogd)打开了该文件,文件描述符为2,最后的deleted表示这个文件已经被标记删除了。
此时,我们可以在/proc/1283/fd/2下找到该文件,fd下面的每个以数字命名的文件表示进程对应的文件描述符。
cat /proc/1283/fd/2 > /var/log/messages
4、监控网络netstat
可以显示路由表、实际的网络连接和网络接口,总之是查看有哪些网络在运作。
netstat -an | grep LISTEN //只显示正在监听的,n表示显示ip代替名称,0.0.0.0的就是每个IP都有的服务,写明哪个IP的就是绑定那个IP的服务。
netstat -tln //用来查看linux的端口使用情况
netstat -ap //查看所有的服务端口并显示对应的服务程序名
windows中是
netstat -ano
netstat -aon|findstr "49157" //筛选端口,可以找到PID
tasklist|findstr "2720" //根据PID可以找到进程名