3中方法:
1. cat /proc/${pid}/status
2. pstree -p ${pid}
3. top -p ${pid} 再按H
或者直接输入 top -bH -d 3 -p ${pid}
查看进程工作
strace -p ${pid}
开启iptables日志
iptables -t raw -I PREROUTING 1 -p tcp --syn -m statistic --mode nth --every 5000 -j LOG --log-prefix "IPTABLES DETECTING SYN: "
tail /var/log/message
关闭iptables日志
iptables -t raw -F
查看是否被攻击
netstat -n -p TCP | grep SYN_RECV | grep :80 | wc -l
netstat -tn|grep ESTABLISH|wc -l
查出服务器是否受到DOS攻击 (看SYN_RECV)
netstat -an |awk '{print $6}'|sort|uniq -c|sort -rn
5116 TIME_WAIT
1624 ESTABLISHED
531 FIN_WAIT1
512 FIN_WAIT2
126 SYN_RECV
10 CLOSING
9 LISTEN
查出服务器异常IP链接
netstat -an | awk '{print $5}' | cut -d":" -f1 | sort | uniq -c | sort -rn | head
ps -ef f
用树形显示进程和线程,比如说我想找到proftp现在有多少个进程/线程,可以用
$ ps -ef f | grep proftpd
nobody 23117 1 0 Dec23 ? S 0:00 proftpd: (accepting connections)
jack 23121 23117 0 Dec23 ? S 7:57 \_ proftpd: jack - ftpsrv: IDLE
jack 28944 23117 0 Dec23 ? S 4:56 \_ proftpd: jack - ftpsrv: IDLE
这样就可以看到proftpd这个进程下面挂了两个线程。
在Linux下面好像因为没有真正的线程,是用进程模拟的,有一个是辅助线程,所以真正程序开的线程应该只有一个。
另外用pstree -c也可以达到相同的效果
$ pstree -c | grep proftpd
|-proftpd-+-proftpd
| `-proftpd
如何查看进程中各线程的内存占用情况?