Skip to content

Commit

Permalink
新增
Browse files Browse the repository at this point in the history
  • Loading branch information
linw7 committed Aug 4, 2017
1 parent 1f345ba commit c990574
Showing 1 changed file with 27 additions and 3 deletions.
30 changes: 27 additions & 3 deletions Linux工具.md
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@
# 最常见的就是mysql端口被占用使用(lsof i:3307)
# 周知端口(ftp:20/21, ssh:22, telnet:23, smtp:25, dns:53, http:80, pop3:110, https:443)
lsof i:53
lsof -i:53
```

- 查看某用户打开的文件
Expand Down Expand Up @@ -625,8 +625,32 @@

- 上面已经提到TKeed server的CPU占用率为99%,那么问题通常一定是出在了死循环上。我们接下来在代码中找到死循环位置。因为程序中epoll_wait需要阻塞进程,我们怀疑是不是这里没有阻塞,这时就可以通过上面的方式运行server程序。此时可以打印出没次系统调用及其参数等,我们也可以加-o filename将系统调用信息保存下来。

5. 进程树:ps
5. 打印进程:ps

- 命令:ps -ejH

- 我们在命令行下打开的程序的父进程是shell程序,之前用strace打开server程序,strace也是server的父进程。我们有时候需要知道进程间的层级关系就需要打印进程树,上面的ps命令可以做到。当出现僵尸进程时就可以通过进程树定位具体是哪个进程出了问题。另外当想要知道进程pid时,ps -el | grep XXX也是很常用的。
- 我们在命令行下打开的程序的父进程是shell程序,之前用strace打开server程序,strace也是server的父进程。我们有时候需要知道进程间的层级关系就需要打印进程树,上面的ps命令可以做到。当出现僵尸进程时就可以通过进程树定位具体是哪个进程出了问题。另外当想要知道进程pid时,ps -el | grep XXX也是很常用的。

6. 打开文件:lsof

- lsof -i:3000

- 比如在运行server时发现端口被占用了,可以通过lsof -i:port来查看对应端口号正在被哪个进程所占用。端口占用是非常常见的问题,比如3306被占用我遇到过好几次,要么是某个程序正好占用了要么是之前没能结束进程,这些都可以借助lsof帮助查看端口。

7. 修改权限:chmod

- chmod 000 ./index.html

- 可以修改文件权限,这里设为000,这样任何人都无法访问,重新在浏览器请求127.0.0.1:3000/index.html就会因为文件权限不够而无法展示,服务器返回状态码为403,符合我们预期。修改权限后再请求一次可得到状态码200。

8. 网卡信息:ifconfig

- ifconfig

- 如果想看一下整个传输过程,可以使用tcpdump来抓包,但是抓包时参数需要加上网卡信息,这时候可以通过ifconfig来获得网卡信息。

9. 抓包分析:tcpdump

- tcpdump -i eth0 port 3000

- 可以用tcpdump来抓包分析三次握手及数据传输过程,-i之后加上上一步得到的网卡地址,port可以指定监听的端口号。

0 comments on commit c990574

Please sign in to comment.