ps
ps aux
ps -ef
top
top -n 1 -b
top -d 1 -n 3 -b | grep -i aliyundun --line-buffered | awk '{print $9}'
netstat
作业题
- 文件检索
- 在特定目录下找到包含特定debug的数据或者代码
- 网络统计
- 压测时统计当前机器的连接数
- 查看当前开放的端口和进程
- 性能统计
- 统计某个进程的cpu和mem的增长情况
- 任务处理
- 使用简易的工具对第三方服务做加压并统计性能
作业1
统计某个进程的cpu和mem的增长情况
#不区分大小写
#perf_get aliyundun
#perf_get 12780
perf_get(){
#todo
}
perf_get yundun
cpu mem
1 2
3 4
avg: 2 3
答案
#perf_get yundun$
#perf_get 12789
perf_get() {
#使用变量替换位置参数
local proc="$1"
local timeout="$2"
#基本使用给予基本检查
[ -z "$proc" ] && { echo please give a proc name or pid; return 1; }
[ -z "$timeout" ] && timeout=10
#top的批处理输出
top -b -d 1 -n $timeout |
#范围限定,为了精准处理
grep '^[ 0-9][1-9]' |
#提取精准数据
awk '{print $1,$9,$10,$12}' |
#取出感兴趣数据,同时读一行就给后面的管道进程,方便实时显示
grep --line-buffered -i "$proc" |
#分组统计并打印,使用tab作为OFS进行输出,fflush()可以实时输出给后面的进程
awk '
BEGIN{OFS="\t";print "CPU","MEM"}
{cpu+=$2; mem+=$3;print $1,$2,$3,$4;}
END{print "";print "avg: ",cpu/NR,mem/NR}'
}
[root@shell.testing-studio.com ~]$ perf_get yundun$ 5
CPU MEM
7957 0.0 0.7 AliYunDun
7957 2.9 0.7 AliYunDun
7957 3.9 0.7 AliYunDun
7957 3.9 0.7 AliYunDun
7957 3.9 0.7 AliYunDun
avg: 2.92 0.7
课后作业1
查下当前机器有多少到22端口的tcp连接
tcp_connections(){
}