一些有用的监控系统能的脚本.doc_第1页
一些有用的监控系统能的脚本.doc_第2页
一些有用的监控系统能的脚本.doc_第3页
一些有用的监控系统能的脚本.doc_第4页
一些有用的监控系统能的脚本.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一些有用的监控系统性能的脚本aiostat.shconfig.shemstat.shfilemon.shiostat.shiptrace.shmonitor.shnetstat.shnfsstat.shperfpmr.shpprof.shps.shquicksnap.shsar.shsvmon.shtcpdump.shtprof.shtrace.shvmstat.sh#aiostat.sh#!/bin/ksh# COMPONENT_NAME: perfpmr# FUNCTIONS: none# ORIGINS: 27# (C) COPYRIGHT International Business Machines Corp.2000# All Rights Reserved# US Government Users Restricted Rights - Use, duplication or# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.# aiostat.sh# invoke iostat for specified interval and create interval and summary reports#export LANG=Cif $# -ne 1 ; thenecho aiostat.sh: usage: aiostat.sh timeecho time is total time in seconds to be measured.exit 1fi# determine interval and countif $1 -lt 601 ; thenINTERVAL=10let COUNT=$1/10elseINTERVAL=60let COUNT=$1/60fi# need count+1 intervals for IOSTATlet COUNT=COUNT+1echo A I O S T A T I N T E R V A L O U T P U T (aiostat $INTERVAL $COUNT) echo Hostname:hostname -s echo Time before run: date trap kill -9 $! 1 2 3 24echo AIOSTAT: Starting AIO Statistics Collector AIOSTAT.if whence aiostat /dev/null; thenaiostatexe=aiostatelse aiostatexe=$PERFPMRDIR/aiostatfi$aiostatexe /dev/null 2&1if $? != 0 ; thenecho aiostat failed - AIO may not be enabled exit 0fi$aiostatexe -t 10000$INTERVAL $COUNT &# wait required intervalecho AIOSTAT: Waiting for measurement period to end.wait# save time after runecho Time after run : date echo AIOSTAT: Interval report is in file #config.sh#!/bin/ksh# COMPONENT_NAME: perfpmr# FUNCTIONS: none# ORIGINS: IBM# (C) COPYRIGHT International Business Machines Corp. 2000# All Rights Reserved# US Government Users Restricted Rights - Use, duplication or# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.# config.sh# invoke configuration commands and create report#set -xexport LANG=CCFGOUT=config.sumPERFPMRDIR=whence $0PERFPMRDIR=/usr/bin/ls -l $PERFPMRDIR |/usr/bin/awk print $NFPERFPMRDIR=/usr/bin/dirname $PERFPMRDIR ; export PERFPMRDIRBIN=/usr/binif $GETGENNAMES = 0 ; then nogennames=1fiunset EXTSHMshow_usage()echo Usage: config.sh -aglpsecho -ado not run lsattr on every deviceecho -gdo not run gennames commandecho -ldo not run detailed LVM commands on each LVecho -pdo not run lspv on each diskecho -sdo not run SSA cfg commandsecho output is generated in $CFGOUTexit 1while getopts :gslap flag ; do case $flag in p) nolspv=1; g) nogennames=1; s) nossa=1; l) nolv=1; a) nolsattr=1; ?) show_usage esacdoneecho CONFIG.SH: Generating SW/HW configurationecho C O N F I G U R A T I O N SUMMARY OUTPUT $CFGOUTecho Hostname:$BIN/hostname -s $CFGOUTecho Time config run: $BIN/date $CFGOUTecho AIX VRLM (oslevel): $BIN/oslevel $CFGOUTecho PROCESSOR TYPE(uname -m) $CFGOUTecho - $CFGOUT$BIN/uname -m $CFGOUTecho # = model $CFGOUTecho MEMORY(bootinfo -r): bootinfo -r $CFGOUTecho MEMORY(lscfg -l memN) $CFGOUTecho - $CFGOUTlscfg -l mem* $CFGOUT# get current paging space infoecho PAGING SPACES(lsps -a) $CFGOUTecho - $CFGOUTlsps -a $CFGOUTecho PAGING SPACES(lsps -s) $CFGOUTecho - $CFGOUTlsps -s $CFGOUTecho INTERPROCESS COMMUNICATION FACILITY STATUS (ipcs -Sa) $CFGOUTecho - $CFGOUT$BIN/ipcs -Sa $CFGOUT# get detail device infoecho f PHYSICAL / LOGICAL DEVICE DETAILS(lsdev -C | sort +2) $CFGOUTecho - $CFGOUTlsdev -C | $BIN/sort +2 $CFGOUT# get current physical volume namesecho f PHYSICAL VOLUMES(lspv) $CFGOUTecho - $CFGOUTlspv $CFGOUT# get detail physical volume infoif ! -n $nolspv ; thenfor i in lspv | $BIN/awk print $1; do echo PHYSICAL VOLUME DETAILS FOR $i(lspv -l $i) $CFGOUT echo - $CFGOUT lspv -l $i $CFGOUT 2&1donefi# get detail volume group infofor i in lsvg -o; doecho VOLUME GROUP DETAILS(lsvg -l $i) $CFGOUTecho - $CFGOUTlsvg -l $i $CFGOUTdone# get current mount infoecho f MOUNTED FILESYSTEMS(mount) $CFGOUTecho - $CFGOUTmount $CFGOUTecho FILE SYSTEM INFORMATION:(lsfs -q) $CFGOUTecho - $CFGOUTlsfs -q$CFGOUT 2&1echo FILE SYSTEM SPACE:(df) $CFGOUTecho - $CFGOUT$BIN/df $CFGOUT &dfpid=$!dfi=0;dftimeout=30while $dfi -lt $dftimeout ; do /usr/bin/ps -p $dfpid /dev/null if $? = 0 ; then sleep 2 else break fi let dfi=dfi+1doneif $dfi = $dftimeout ; then echo Killing process kill -9 $dfpidfiif ! -n $nolv ; then# for LV in $(lsvg -o|lsvg -il|awk print $1|egrep -v :|LV) ; dofor LV in $(/usr/sbin/lsvg -o|/usr/sbin/lsvg -il|$BIN/awk if ($2 != NAME) print $1 | grep -v :); do echo LOGICAL VOLUME DETAILS (lslv $LV) echo - lslv $LV echodone $CFGOUTfi# = ESS CFG INFO =#$PERFPMRDIR/quicksnap.sh quicksnap.out# = SSA CFG =if ! -n $nossa ; thenecho Mapping of SSA hdisk to pdisk $CFGOUTecho - $CFGOUTfor i in $(lsdev -Csssar -thdisk -Fname)do echo ssaxlate -l $i: ssaxlate -l $i $CFGOUTdoneecho Mapping of SSA pdisk to hdisk $CFGOUTecho - $CFGOUTfor i in $(lsdev -Csssar -cpdisk -Fname)do echo ssaxlate -l $i: ssaxlate -l $i $CFGOUTdoneecho SSA connection data (ssaconn -l pdiskN -a ssaN) $CFGOUTecho - $CFGOUTfor pdisk in $(lsdev -Csssar -cpdisk -Fname)do for adap in $(ssaadap -l $pdisk 2/dev/null) do ssaconn -l $pdisk -a $adap $CFGOUT donedoneecho SSA connection data sorted by link $CFGOUTecho (ssaconn -l all_pdisks -a all_ssa_adapters | $BIN/sort -d +4 -5 +2 -3) $CFGOUTecho - $CFGOUTunset Cssafor adap in $(lsdev -Ctssa -Fname) $(lsdev -Ctssa160 -Fname)do for pdisk in $(lsdev -Csssar -cpdisk -Fname) do xssa=$(ssaconn -l $pdisk -a $adap 2/dev/null ) if -n $xssa then Cssa=$Cssan$xssa fi done echo $Cssa | $BIN/sort -d +4 -5 +2 -3 $CFGOUT unset Cssa unset stringdonefor adap in $(ssaraid -M 2/dev/null)do echo ssaraid -l $adap -I $CFGOUT echo - $CFGOUT ssaraid -l $adap -I $CFGOUTdonefi # no ssa# = END OF SSA CFG =# get static network configuration infoecho f NETWORKCONFIGURATIONINFORMATION $CFGOUTecho - $CFGOUTfor i inin rn D an cdoecho netstat -$i: $CFGOUTecho - $CFGOUTnetstat -$i $CFGOUTecho $CFGOUTdoneecho INTERFACE CONFIGURATION:(ifconfig -a) $CFGOUTecho - $CFGOUTifconfig -a $CFGOUTecho NETWORK OPTIONS:(no -a) $CFGOUTecho - $CFGOUTno -a $CFGOUTecho NFS OPTIONS:(nfso -a) $CFGOUTecho - $CFGOUTnfso -a $CFGOUTecho showmount -a $CFGOUTecho - $CFGOUTshowmount -a $CFGOUT 2&1# Capture all lsattr settingsif ! -n $nolsattr ; thenlsdev -C -r name | while read DEVS; do echo lsattr -E -l $DEVS echo - lsattr -E -l $DEVS2&1done $CFGOUTfi# collect schedtune and vmtune current settingsecho SCHEDTUNE SETTINGS (schedtune) $CFGOUTecho - $CFGOUTif -f /usr/samples/kernel/schedtune ; then /usr/samples/kernel/schedtune $CFGOUTelse echo /usr/samples/kernel/schedtune not installed $CFGOUT echo This program is part of the bos.adt.samples fileset $CFGOUTfiecho VMTUNE SETTINGS(vmtune) $CFGOUTecho - $CFGOUTif -f /usr/samples/kernel/vmtune ; then /usr/samples/kernel/vmtune $CFGOUT echo VMTUNE SETTINGS(vmtune -a) $CFGOUT echo - $CFGOUT /usr/samples/kernel/vmtune -a $CFGOUT 2&1 echo VMTUNE SETTINGS(vmtune -A) $CFGOUT echo - $CFGOUT /usr/samples/kernel/vmtune -A $CFGOUT 2&1else echo /usr/samples/kernel/vmtune not installed $CFGOUT echo This program is part of the bos.adt.samples fileset $CFGOUTfi# =WORKLOAD MANAGER =echo workload manager status(wlmcntrl -q ; echo $?) $CFGOUTecho - $CFGOUTwlmcntrl -q2&1 $CFGOUTecho $? $CFGOUTecho workload manager classes (lsclass -C) $CFGOUTecho - $CFGOUTlsclass -C $CFGOUT# =END OF WORKLOAD MANAGER =# =GEN* COMMANDS =# get genkld and genkex outputecho GENKLD OUTPUT(genkld) $CFGOUTecho - $CFGOUTwhence genkld /dev/null2&1if $? = 0 ; then #genkld |$BIN/sort genkld.out genkld genkld.outelse echo genkld not installed or not in current PATH $CFGOUT echo This program is part of the optional perfagent.tools fileset $CFGOUTfiecho GENKEX OUTPUT(genkex) $CFGOUTecho - $CFGOUTwhence genkex /dev/null2&1if $? = 0 ; then #genkex | $BIN/sort genkex.out genkexgenkex.outelse echo genkex not installed or not in current PATH $CFGOUT echo This program is part of the optional perfagent.tools fileset $CFGOUTfi# =END OF GEN* COMMANDS =echo SYSTEM AUDITING STATUS(audit query) $CFGOUTecho - $CFGOUTaudit query$CFGOUTecho SHELL ENVIRONMENT(env) $CFGOUTecho - $CFGOUTenv $CFGOUTecho SHELL ENVIRONMENTS (getevars -l getevars.out) $CFGOUTecho - $CFGOUT$PERFPMRDIR/getevars -l getevars.out# get 2000 lines of verbose error report outputecho VERBOSE ERROR REPORT (errpt -a | head -2000 errpt_a) $CFGOUTecho - $CFGOUT$BIN/errpt -a | head -2000 errpt_a# get 100 most recent entries in errptecho ERROR REPORT (errpt | head -100) $CFGOUTecho - $CFGOUT$BIN/errpt | head -100 $CFGOUT# get lpp history infoecho f LICENSEDPROGRAMPRODUCTHISTORY(lslpp -ch) $CFGOUTecho - $CFGOUT/usr/bin/lslpp -ch $CFGOUT# get apar infoinstfix -ic instfix.out# get java lpp infoecho java -fullversion $CFGOUTecho - $CFGOUTwhence java $CFGOUT2&1if $? = 0 ; then java -fullversion $CFGOUT 2&1fi# get slot informationecho f PCI SLOT CONFIGURATION(lsslot -c pci) $CFGOUTecho - $CFGOUTlsslot -c pci $CFGOUT 2/dev/null# get verbose machine configuration#added because it is useful to tell between 601 and 604 upgradesecho f VERBOSE MACHINE CONFIGURATION(lscfg -vp) $CFGOUTecho - $CFGOUTlscfg -vp $CFGOUT# get cache info via Matts programecho f PROCESSOR DETAIL(lsc -m) $CFGOUTecho - $CFGOUT$PERFPMRDIR/lsc -m $CFGOUT# get kproc and thread info AND kernel heap statsecho KERNEL THREAD TABLE(pstat -A) $CFGOUTecho - $CFGOUT# no pstat in AIX 5 yet, so use something elseecho th * xm -u | /usr/sbin/kdb $CFGOUT# get vnode and vfs infoecho vnode|/usr/sbin/kdb vnode.kdbecho vfs|/usr/sbin/kdb vfs.kdb# get devtree information/usr/lib/boot/bin/dmpdt_chrp -i devtree.out 2&1# get system dump config infoecho SYSTEM DUMP INFO (sysdumpdev -l;sysdumpdev -e) $CFGOUTecho - $CFGOUTsysdumpdev -l $CFGOUTsysdumpdev -e $CFGOUT# get bosdebug settingsecho bosdebug -L $CFGOUTecho - $CFGOUTbosdebug -L $CFGOUT# get locktrace settingsecho locktrace -l $CFGOUTecho - $CFGOUTlocktrace -l $CFGOUT 2&1# get ls of kernel in useecho ls -al /unix INFO $CFGOUTecho - $CFGOUTls -al /unix $CFGOUTecho ls -al /usr/lib/boot/uni* INFO $CFGOUTecho - $CFGOUTls -al /usr/lib/boot/uni* $CFGOUT# get power management settingsecho power management (pmctrl -v) $CFGOUTecho - $CFGOUTpmctrl -v $CFGOUT2&1# get gennames output if needed (not present or older than .init.state)if ! -n $nogennames ; thenecho gennames gennames.out $CFGOUTecho - $CFGOUTif ! -f gennames.out -o gennames.out -ot /etc/.init.state ; then gennames gennames.out2&1fifi# get crontab -l infoecho crontab -l crontab_l $CFGOUTecho - $CFGOUTcrontab -l crontab_l# get /etc/security/limitsecho cp /etc/security/limits etc_security_limits $CFGOUTecho - $CFGOUTcp /etc/security/limits etc_security_limits# get misc files/usr/bin/cp /etc/inittabetc_inittab/usr/bin/cp /etc/filesystemsetc_filesystems/usr/bin/cp /etc/rcetc_rc# get what output of /unix/usr/bin/what /unix unix.whatecho config.sh data collection completed. $CFGOUTecho CONFIG.SH: Report is in file $CFGOUT#end of shell#emstat.sh#!/bin/ksh# COMPONENT_NAME: perfpmr# FUNCTIONS: none# ORIGINS: 27# (C) COPYRIGHT International Business Machines Corp.2000# All Rights Reserved# US Government Users Restricted Rights - Use, duplication or# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.# emstat.sh# invoke emstat before/during/after measurement period and generate reports#export LANG=Cif $# -ne 1 ; thenecho emstat.sh: usage: emstat.sh timeecho time is total time in seconds to be measured.exit 1fi# exit if emstat executable is not installedif ! -f /usr/bin/emstat ; thenecho EMSTAT: /usr/bin/emstat command is not installedecho EMSTAT: This command is part of the optionalecho bos.perf.tools fileset.exit 1fi# check total time specified for minimum amount of 60 secondsif $1 -lt 60 ; thenecho Minimum time interval required is 60 secondsexit 1fi# determine INTERVAL and COUNTif $1 -lt 601 ; thenINTERVAL=10let COUNT=$1/10elseINTERVAL=60let COUNT=$1/60fi# need count+1 intervals for VMSTATlet COUNT=COUNT+1echo E M S T A T I N T E R V A L O U T P U T (emstat $INTERVAL $COUNT) echo Hostname:hostname -s echo Time before run: date echo EMSTAT: Starting Emulator Statistics Collector (emstat $INTERVAL $COUNT)trap kill -9 $! 1 2 3 24/usr/bin/emstat -a -e $INTERVAL $COUNT emstat.tmp &# wait required intervalecho EMSTAT: Waiting for measurement period to end.wait# save time after runecho Time after run : date echo EMSTAT: Generating reports.echo /usr/bin/cat emstat.tmp /usr/bin/rmemstat.tmpecho EMSTAT: Interval report is in file

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论