- 论坛徽章:
- 1
|
如果想在AIX上部署mtop(),目的就是可以直接用mtop,只需在root用户下复制、粘贴下面的一堆代码就可以了:
export FPATH=${FPATH=/functions}
grep -qw FPATH= /etc/profile || echo export FPATH=$FPATH >>/etc/profile
[ -d $FPATH ] || mkdir $FPATH
cat ${FPATH}/mtop
function mtop {
#判断第一个参数是否是正整数
if ! (echo $1 | egrep -q ^[1-9][0-9]*$); then
cat
$0 2
EOF
return
fi
#AIX6.1以前,普通用户不能使用svmon。
#解决方法:
http://bbs3.chinaunix.net/viewthread.php?tid=1024273
[ -f /usr/lib/perf/svmon_back.64 ] && SVMON=/usr/lib/perf/svmon_back.64 || SVMON=/usr/bin/svmon
#sq means single quotation
#dq means double quotation
$SVMON -Pt $1 | awk -v sq="'" -v dq='"' '
/^--/{a=1}
$1=="Vsid"{
system("echo;ps alxww "pid"|awk -F: -v OFS=: "sq"length($0)>200{for(i=2;i<=NF;i++){gsub("dq" "dq","dq"
\\n"dq",$i)}}1"sq
)
a=0
}
a{print;if($1~/[1-9]/){pid=$1; s=s"\n"$1"\t"$3"\t"$3*4"\t\t"$2}}
END{print "\nSummary:\nPid\tInuse\tInuse_in_KBytes\tCommand"s}'
}
!
[ -f /usr/lib/perf/svmon_back.64 ] && chmod 555 /usr/lib/perf/svmon_back.64
之前实现的2项功能:
1、输出相关进程的命令全貌
2、对于长命令,在CMD中每个空格后补一个换行符
追加了4项功能:
3、判断参数是否正确,否则给出mtop()用法提示
4、结尾追加了summary部分
5、非root用户也可使用
6、用户登录后mtop()自动生效,但要求是KSH。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/739/showart_2118349.html |
|