写了一个nmon的脚本,用来定时运行nmon,并且生成日志文件.
1.首先你需要创建一个标准的目录结构,里面有bin log scripts
其中bin存放nmon可执行文件,log为执行nmon产生的结果目录,scripts为nmon的脚本.
例如:
mkdir -p /root/nmon/{bin,log,scripts}
将nmon可执行文件上传到bin下,并且赋予执行权限.文件名必须是nmon,你可以做个软连接
2.在scripts下创建nmon.sh脚本,用来定时执行nmon命令:
scripts脚本内容如下:
#指定nmon的主目录
export NMON_DIR=/root/nmon
#INTERVAL SECONDS 设置nmon每次执行的时间间隔,单位为秒
export INTERVAL=10
#DURATION hours 设置每次nmon执行的时间,即每隔多长时间产生一个新的nmon日志文件,单位为小时
export DURATION=4
#NMON logfile keep days 设置nmon 日志文件的保留时间,单位为天
export KEEP_TIME=7
COUNT=$((${DURATION}*3600/${INTERVAL}))
while true
do
NMON_PID=`ps -ef |grep ${NMON_DIR}/bin/nmon |grep -v grep |wc -l`
if [ "$NMON_PID" -ge 1 ]
then
sleep 10
find ${NMON_DIR}/log -ctime +${KEEP_TIME} -name "*.nmon" |xargs rm -rf
continue
else
${NMON_DIR}/bin/nmon -s${INTERVAL} -c${COUNT} -f -m ${NMON_DIR}/log
fi
done
例如上面的配置中:
nmon每间隔10s钟执行一次.每4个小时产生一个nmon的日志文件.日志文件保留7天.
3.将脚本在后台运行
nohup /root/nmon/scritps/nmon.sh &
效果就是每隔10s执行一次nmon抓取操作系统性能参数,且每4小时产生一个日志文件.
说明:为啥要每隔4小时产生一个文件呢,因为如果你不设置时间限制,nmon产生的日志文件会越来越大,最后用excel分析的时候可能就没法分析了,通过时间间隔减少每隔文件的大小.