tt_java_cpu_top=$(top -b -o %CPU -n 1| grep java | sed -n '1,5p'|awk '{print $1}')
echo tt_java_cpu_top
sed -n '1,5p'解释:
- -n或--quiet或--silent 仅显示script处理后的结果。
- p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
即打印1,5行
查询CPU/内存占用前n的进程,并把ps -aux 查询数据写入文件,方便查看经常的启动命令,以确定是哪些应用
#!/bin/bash
pidnum=$(top -b -o %MEM -n 1| grep java | sed -n '1,30p'|awk '{print $1}')
# dd=`date +%s`
dd=`date "+%Y-%m-%d-%H:%M:%S"`
# echo $dd
filenmae='pidcheck'$dd
# echo $filenmae
for i in ${pidnum[*]}
do
echo $i
ps -ef | grep $i | grep -v 'grep' >> $filenmae
done
EOF
用上面的代码做一个shell脚本,查询CPU的占用前n只需要更改 top -o %CPU,查询前10 只需修改sed -n '1,10p'
使用chmod +x xxx.sh 给脚本赋予执行权限
./xxx.sh 执行脚本后
cat pidcheckxxxx 就可查看本次的执行结果
文件名以当前时间戳命令,避免重复