扫描端口占用情况
1 | #!/usr/bin/env python |
判断哪些进程占用的资源多
1 | !/bin/bash |
输出结果如下1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21root@ubuntu16-desktop:~# sh process_order.sh
53 20647 /opt/jdk-10.0.2/bin/java -Xms1g -Xmx1g -XX:+UseCon
46 20593 /opt/jdk-10.0.2/bin/java -Xms1g -Xmx1g -XX:+UseCon
46 20455 /opt/jdk-10.0.2/bin/java -Xms1g -Xmx1g -XX:+UseCon
37 10601 /usr/lib/jvm/java-1.8-openjdk/jre/bin/java -Xmx1G
37 10582 /usr/lib/jvm/java-1.8-openjdk/jre/bin/java -Xmx1G
37 10497 /usr/lib/jvm/java-1.8-openjdk/jre/bin/java -Xmx1G
32 13841 java -jar server-v1.0.jar
31 6022 /usr/java/jdk1.8.0_171/bin/java -Xms1000m -Xmx1000
19 19807 java -jar -Dloader.path=.,config,resources,3rd-lib
9 1362 nm-applet
8 3022 java -Duser.dir=/kafka-manager-1.3.1.8 -Dconfig.fi
6 746 /usr/sbin/NetworkManager --no-daemon
4 4511 /usr/lib/jvm/java-1.8-openjdk/jre/bin/java -Dzooke
4 3024 /usr/lib/jvm/java-1.8-openjdk/jre/bin/java -Dzooke
3 3381 /usr/lib/jvm/java-1.8-openjdk/jre/bin/java -Dzooke
2 21999 /opt/java/bin/java -Xmx20m -Dflume.root.logger=INF
2 21553 /opt/java/bin/java -Xmx20m -Dflume.root.logger=INF
1 946 /usr/bin/containerd
1 23736 grunt
1 1310 /usr/sbin/unity-greeter
隐藏命令的操作
通过export HISTCONTROL=ignorespace
这样只要先输入空格 后边的命令就不会被记录
禁用当前会话的所有历史记录
如果你想禁用某个会话所有历史,你可以在开始命令行工作前简单地清除环境变量 HISTSIZE 的值即可。执行下面的命令来清除其值
export HISTSIZE=0
HISTSIZE 表示对于 bash 会话其历史列表中可以保存命令的个数(行数)。默认情况,它设置了一个非零值,例如在我的电脑上,它的值为 1000。
所以上面所提到的命令将其值设置为 0,结果就是直到你关闭终端,没有东西会存储在历史记录中。记住同样你也不能通过按向上的箭头按键或运行 history 命令来看到之前执行的命令。
https://www.cnblogs.com/rusking/p/5715715.html
Linux性能分析的网站
http://www.brendangregg.com/linuxperf.html
Linux中如何检测IP地址冲突问题
arping命令是用于发送arp请求到一个相邻主机的工具,arping使用arp数据包,通过ping命令检查设备上的硬件地址。能够测试一个ip地址是否是在网络上已经被使用,并能够获取更多设备信息。功能类似于ping。
arping命令是用于发送ARP请求到一个相邻主机的工具,通过ARP响应报文检查设备上的硬件地址。它能够测试一个IP地址是否是在网络上已经使用,并能够获取更多设备信息。该功能类似于ping命令。
arping命令选项:
1 | -b:用于发送以太网广播帧(FFFFFFFFFFFF)。arping一开始使用广播地址,在收到响应后就使用unicast地址。 |
IP地址冲突检测
在出问题的主机上,可以使用”arping -I ethN x.x.x.x”命令(其中x.x.x.x为本接口的IP地址)检测地址冲突,如果没有任何输出,则表示本IP地址无冲突。如果有冲突的话,该命令会显示冲突的IP地址使用的MAC地址。
内存分页监控(sar -B)
例如,每10秒采样一次,连续采样3次,监控内存分页:sar -B 10 3
输出项说明:1
2
3
4
5
6
7
8
9pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB)
pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB)
fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)
majflt/s:每秒钟产生的主缺页数.
pgfree/s:每秒被放入空闲队列中的页个数
pgscank/s:每秒被kswapd扫描的页个数
pgscand/s:每秒直接被扫描的页个数
pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数
vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比
SS命令
ss 是 socket statistics 的缩写。顾名思义,ss 命令可以用来获取socket 统计信息,它可以显示和netstat 类似的内容。但 ss 的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是 cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用 netstat 等于浪费生命,而用 ss才是 节省时间。
天下武功唯快不破。ss快的秘诀在于,他利用了TCP协议栈中 tcp_diag. tcp_diag 是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。当然,如果你的系统中没有 tcp_diag,ss也可以正常运行,只是效率会变得稍慢。(但仍然比 netstat 要快。)
查找某一个时间点以后创建或者修改的文件
首先创建一个对比的时间点的文件touch -t 201407201710.00 abc //创建一个文件,他的mtime是2014-07-20-17:10:00
要查找2014-07-20-17:10:00 这个时间点以后创建或者修改的文件,使用命令#find -newer abc //跟刚才创建的文件对比
rz和sz 传输文件
rz是上传(从本地上传到服务器),可以使用rz -y实现覆盖上传
sz是下载。 实现下载可以直接使用szfilename,其中filename就是你想要下载的文件的名字,如果是目录需要打包成单个文件在实现下载。