脚本代码:
#!/bin/sh
if [ "$#" -ne "1" ];then
echo "usage: $0 <process name>"
exit 1
fi
pid=`pgrep $1 | awk '{print $1}'`
top -b -n 1 -p $pid | awk '$1=="PID"{print $5,$6,$7}'
top -b -d 2 -p $pid | awk -v awk_pid="$pid" '$1==awk_pid{print $5,$6,$7}'
执行:
./mem_monitor.sh monsvr > log.txt
运行结果里只有第一行top出来的数据。
3 个解决方案
#1
悲催啊,沙发要自己做。。。各位linux大神来看看吧,跪求。。。
#2
最后一行:
top -b -d 2 -p $pid | awk -v awk_pid="$pid" '$1==awk_pid{print $5,$6,$7;fflush()}'
#3
V5! 问题解决,版主出马果然不同凡响!非常感谢
#1
悲催啊,沙发要自己做。。。各位linux大神来看看吧,跪求。。。
#2
最后一行:
top -b -d 2 -p $pid | awk -v awk_pid="$pid" '$1==awk_pid{print $5,$6,$7;fflush()}'
#3
V5! 问题解决,版主出马果然不同凡响!非常感谢