之前写了几篇关于shell命令的用法,我们来看下实际的应用。
CPU统计
1.通过top
top -p ${pid} -n ${num} -d ${seconds} -b
-p 指定进程pid
-n 指定统计的次数
-d 指定时间间隔,每x秒刷新一次
-b top默认以交互模式运行,-b代表以批处理模式运行,适用于非交互式环境
grep --line-buffered
grep
命令的--line-buffered
参数用于强制grep
以行缓冲模式运行。这意味着grep
会在处理完每一行后立即输出结果,而不是等到整个文件处理完毕后再输出。这个参数对于实时查看grep
的搜索结果非常有用,尤其是在处理大文件或管道中的数据流时。默认情况下,
grep
会使用阻塞缓冲,这意味着它会在缓冲区填满后或者文件处理完毕后才输出结果。这可能会导致在处理大文件时,你不能立即看到匹配的行。使用
--line-buffered
参数可以确保grep
在找到匹配行时立即输出,而不需要等待缓冲区填满。这在某些情况下可以提高效率,尤其是在你需要实时监控grep
输出时。--来自kimi回答
举个例子,我要统计浏览器进程在一段时间内的cpu平均值:
test@test:~$ top -p 3484 -d 5 -b -n 3|grep --line-buffered browser|awk '{cpu+=$9}{print $9, cpu, NR, cpu/NR}'100.0 100 1 100
100.0 200 2 100
99.8 299.8 3 99.9333
# 指定浏览器进程,每5s刷新一次,总共运行3次,取3次的平均值