通常top命令是会持续运行而不终止的。
要在脚本里用,需要添加一些选项参数,尤其是-b。例如:top -b -n 2 -d 3 >/tmp/log-b表示批处理模式(Batch mode),以非交互和非全屏模式运行,将top输出编排成适合输出到文件的格式,可以使用这个选项创建进程日志,
-n表示执行几次,
-d表示屏幕刷新时间
-p top指定查看PID
pidof - 找出正在运行程序的进程PID
实例:监控实时cpu利用率
cpuuse=`top -b -n2 -p 1 | fgrep "Cpu(s)" | tail -1 | awk -F'id,' -v prefix="$prefix" '{ split($1, vs, ","); v=vs[length(vs)]; sub("%", "", v); printf "%s%.1f%%\n", prefix, 100 - v }'`
内存监控怎么做呢?很多人会说 free -m,怎么能够换算成百分比,而且去除cache的影响呢
mem=`free -m|grep Mem|awk '{print ($3-$6-$7)/$2}'`