#!/bin/ksh
################################################
#程式名称 monitor_dailyreport.sh
#程式类别 Unix shell program
#日期格式 YYYY/MM/DD 西元纪元
#作业描述 为这台主机出一份dailycheck report
#
#
#程式版本 V1.0 2004/06/18
#原始执笔 xfang
#修改者
################################################################################
###### 变数清单
######
######
################################################################
servername=`hostname`
mntdt=`date +"20%y-%m-%d %H:%M"`
syserrdate=`date +"%m%d"`
mqerrdt=`date +"%m/%d/%y"`
filenamedt=`date +"20%y%m%d"`
errcount=0
mntdir=/home/root/monitor
ftpdir=/home/root/ftpfile
tmpdir=/tmp/mnt
mqerrdir=/var/mqm/errors
echo "report system error"
####report system error
####判断今天有没有新的error及其个数
errdate=`errpt |grep -v IDENTIFIER |awk '{print $2}' |cut -c 1-4 |xargs`
for syserrFor1 in $errdate
do
if [ "$syserrFor1" = "$syserrdate" ]
then
newerrcount=`expr $errcount + 1`
errcount=$newerrcount
fi
done
echo "$servername\tsystem error report\t$mntdt\t$errcount" >> $mntdir/errsql_$filenamedt.txt
echo "$servername\tsystem error report\t$mntdt\t$errcount" >> $ftpdir/dailycheck.txt
echo "report active virtual papgs"
####report active virtual papgs
###从vmstat输出信息中抓出,活动页面数
vmstat 1 10 |sed '1,12d' > $tmpdir/vmdata.txt
avp=`cat $tmpdir/vmdata.txt |awk '{print $3}'`
echo "$servername\tactive virtual pages\t$mntdt\t$avp" >> $mntdir/avmsql_$filenamedt.txt
echo "$servername\tactive virtual pages\t$mntdt\t$avp" >> $ftpdir/dailycheck.txt
echo "report size of the free list"
####report size of the free list
###从vmstat输出信息中抓出,空闲页面数
slf=`cat $tmpdir/vmdata.txt |awk '{print $4}'`
echo "$servername\tsize of the free list\t$mntdt\t$slf" >> $mntdir/fresql_$filenamedt.txt
echo "$servername\tsize of the free list\t$mntdt\t$slf" >> $ftpdir/dailycheck.txt
echo "report paged in from paging space"
####report paged in from paging space
###从vmstat输出信息中抓出,paged in页面数
pspi=`cat $tmpdir/vmdata.txt |awk '{print $6}'`
echo "$servername\tpaged in from paging space\t$mntdt\t$pspi" >> $mntdir/pisql_$filenamedt.txt
echo "$servername\tpaged in from paging space\t$mntdt\t$pspi" >> $ftpdir/dailycheck.txt
echo "report paged out from paging space"
####report paged out from paging space
###vmstat输出信息中抓出,paged out页面数
pspo=`cat $tmpdir/vmdata.txt |awk '{print $7}'`
echo "$servername\tpaged out from paging space\t$mntdt\t$pspo" >> $mntdir/posql_$filenamedt.txt
echo "$servername\tpaged out from paging space\t$mntdt\t$pspo" >> $ftpdir/dailycheck.txt
echo "report network error number"
####report network error number
###从netstat -in输出信息中,抓取network error number
netstat -in |grep -v Name |sed '5,$d' > $tmpdir/netstat.txt
awk '{err=($6 + $8 > 0) ? $6 + $8:0; print err}' $tmpdir/netstat.txt |xargs > $tmpdir/nerr.txt
nen=`awk '{$1 += $2; $1 += $3; $1 += $4; $1 += $5; $1 += $6; print $1}' $tmpdir/nerr.txt`
echo "$servername\tnetwork error number\t$mntdt\t$nen" >> $mntdir/Tnerrsql_$filenamedt.txt
echo "$servername\tnetwork error number\t$mntdt\t$nen" >> $ftpdir/dailycheck.txt
echo "report network collisions number"
####report network collisions number
###从netstat -in输出信息中,抓取network collisions number
awk '{print $9}' $tmpdir/netstat.txt |xargs > $tmpdir/ncoll.txt
cln=`awk '{$1 += $2; $1 += $3; $1 += $4; $1 += $5; $1 += $6; print $1}' $tmpdir/ncoll.txt`
echo "$servername\tcollisions number\t$mntdt\t$cln" >> $mntdir/ncollsql_$filenamedt.txt
echo "$servername\tcollisions number\t$mntdt\t$cln" >> $ftpdir/dailycheck.txt
netstat -Zi
echo "report cpu executing at the user level"
####report cpu executing at the user level
###从sar指令中,抓取cpu usr%
cpuu=`sar |grep Average |awk '{print $2}'`
echo "$servername\tcpu executing at the user level\t$mntdt\t$cpuu" >> $mntdir/cusersql_$filenamedt.txt
echo "$servername\tcpu executing at the user level\t$mntdt\t$cpuu" >> $ftpdir/dailycheck.txt
echo "report cpu executing at the system level"
####report cpu executing at the system level
###从sar指令中,抓取cpu sys%
cpus=`sar |grep Average |awk '{print $3}'`
echo "$servername\tcpu executing at the system level\t$mntdt\t$cpus" >> $mntdir/csyssql_$filenamedt.txt
echo "$servername\tcpu executing at the system level\t$mntdt\t$cpus" >> $ftpdir/dailycheck.txt
echo "report cpu idle"
#####report cpu idle
###从sar指令中,抓取cpu idle
cpui=`sar |grep Average |awk '{print $5}'`
echo "$servername\tcpu idle\t$mntdt\t$cpui" >> $mntdir/cidlesql_$filenamedt.txt
echo "$servername\tcpu idle\t$mntdt\t$cpui" >> $ftpdir/dailycheck.txt
echo "report wating I/O"
####report wating I/O
###从sar指令中,抓取cpu等待/O空闲值
cpuw=`sar |grep Average |awk '{print $4}'`
echo "$servername\tcpu waiting I/O\t$mntdt\t$cpuw" >> $mntdir/cwiosql_$filenamedt.txt
echo "$servername\tcpu waiting I/O\t$mntdt\t$cpuw" >> $ftpdir/dailycheck.txt
echo "report memory user level"
####report memory user level
###从svmon指令输出中,获得memory user
pmu=`svmon -G |awk '/^memory/ {print $2}'`
echo "$servername\tphysical memory user level\t$mntdt\t$pmu" >> $mntdir/pramsql_$filenamedt.txt
echo "$servername\tphysical memory user level\t$mntdt\t$pmu" >> $ftpdir/dailycheck.txt
echo "report total process"
####report total process
###计算所有的进程数
tps=`ps -ef |wc -l`
echo "$servername\ttotal process\t$mntdt\t$tps" >> $mntdir/Tprocsql_$filenamedt.txt
echo "$servername\ttotal process\t$mntdt\t$tps" >> $ftpdir/dailycheck.txt
###############################hacmp#######################
echo "report process of hacmp is working"
####report process of hacmp is working
hapcou=`lssrc -a |grep clust |wc -l`
if [ $hapcou -eq 3 ]
then
echo "$servername\tprocess of hacmp is working\t$mntdt\tYes" > $mntdir/hapsql_$filenamedt.txt
echo "$servername\tprocess of hacmp is working\t$mntdt\tYes" >> $ftpdir/dailycheck.txt
else
echo "$servername\tprocess of hacmp is working\t$mntdt\tNO" > $mntdir/hapsql_$filenamedt.txt
echo "$servername\tprocess of hacmp is working\t$mntdt\tNO" >> $ftpdir/dailycheck.txt
fi
echo "report hacmp daemon live"
####report hacmp daemon live
hadcou=`ps -ef|grep cluster |grep -v grep |wc -l`
if [ $hadcou -eq 3 ]
then
echo "$servername\thacmp daemon alive\t$mntdt\tYes" > $mntdir/hadsql_$filenamedt.txt
echo "$servername\thacmp daemon alive\t$mntdt\tYes" >> $ftpdir/dailycheck.txt
else
echo "$servername\thacmp daemon alive\t$mntdt\tNo" > $mntdir/hadsql_$filenamedt.txt
echo "$servername\thacmp daemon alive\t$mntdt\tNo" >> $ftpdir/dailycheck.txt
fi
echo "report hacmp sync time"
####report hacmp sync time
hst=`ps -ef|grep sync |grep -v grep |awk '{print $10}'`
echo "$servername\thacmp sync timing\t$mntdt\t$hst" > $mntdir/hasyncsql_$filenamedt.txt
echo "$servername\thacmp sync timing\t$mntdt\t$hst" >> $ftpdir/dailycheck.txt
############################HACMP##############################################
echo "report errlog of MQ"
####report errlog of MQ
###cat $mqerr |grep $mqerrdt
cd $mqerrdir
elm=`grep $mqerrdt AMQERR01.LOG |wc -l`
echo "$servername\terror log of MQ\t$mntdt\t$elm" >> $mntdir/mqerrcsql_$filenamedt.txt
echo "$servername\terror log of MQ\t$mntdt\t$elm" >> $ftpdir/dailycheck.txt
oracount=`ps -ef |grep oracle |grep LOCAL=NO |wc -l`
echo "$servername\toracle count\t$mntdt\t$oracount" >> $mntdir/oracount_$filenamedt.txt
echo "$servername\toracle count\t$mntdt\t$oracount" >> $ftpdir/dailycheck.txt
mqcount=`ps -ef |grep mq |grep /usr/mqm/bin/amqcrsta |wc -l`
echo "$servername\tmq count\t$mntdt\t$mqcount" >> $mntdir/mqcount_$filenamedt.txt
echo "$servername\tmq count\t$mntdt\t$mqcount" >> $ftpdir/dailycheck.txt
#######################################################################
echo "report file system space user%"
####report file system space user%
rfsr=`df -k |grep -v Filesystem |sed '2,$d' |awk '{print $4}'`
rfsv=`df -k |grep -v Filesystem |sed '2,$d' |awk '{print $2-$3}'`
rfsn=`df -k |grep -v Filesystem |sed '2,$d' |awk '{print $7}'`
echo "$servername\t$rfsn %Used\t$mntdt\t$rfsv\t$rfsr" >> $mntdir/rfs_$filenamedt.txt
echo "$servername\t$rfsn %Used\t$mntdt\t$rfsv\t$rfsr" >> $ftpdir/devfssql.txt
homefsr=`df -k |awk '/home/ {print $4}'`
homefsv=`du -ks /home |awk '{print $1}'`
homefsn=`df -k |awk '/home/ {print $7}'`
echo "$servername\t$homefsn %Used\t$mntdt\t$homefsv\t$homefsr" >> $mntdir/homefs_$filenamedt.txt
echo "$servername\t$homefsn %Used\t$mntdt\t$homefsv\t$homefsr" >> $ftpdir/devfssql.txt
usrfsr=`df -k |awk '/usr/ {print $4}'`
usrfsv=`du -ks /usr |awk '{print $1}'`
usrfsn=`df -k |awk '/usr/ {print $7}'`
echo "$servername\t$usrfsn %Used\t$mntdt\t$usrfsv\t$usrfsr" >> $mntdir/usrfs_$filenamedt.txt
echo "$servername\t$usrfsn %Used\t$mntdt\t$usrfsv\t$usrfsr" >> $ftpdir/devfssql.txt
varfsr=`df -k |awk '/var/ {print $4}'`
varfsv=`du -ks /var |awk '{print $1}'`
varfsn=`df -k |awk '/var/ {print $7}'`
echo "$servername\t$varfsn %Used\t$mntdt\t$varfsv\t$varfsr" >> $mntdir/varfs_$filenamedt.txt
echo "$servername\t$varfsn %Used\t$mntdt\t$varfsv\t$varfsr" >> $ftpdir/devfssql.txt
tmpfsr=`df -k |awk '/tmp/ {print $4}'`
tmpfsv=`du -ks /tmp |awk '{print $1}'`
tmpfsn=`df -k |awk '/tmp/ {print $7}'`
echo "$servername\t$tmpfsn %Used\t$mntdt\t$tmpfsv\t$tmpfsr" >> $mntdir/tmpfs_$filenamedt.txt
echo "$servername\t$tmpfsn %Used\t$mntdt\t$tmpfsv\t$tmpfsr" >> $ftpdir/devfssql.txt
#################################################################################
sleep 3
echo "start ftp process"
#####start ftp process###########
hostip="XXX.XXX.XXX"
login_name="username"
password="userpw"
ftp -v -n $hostip << EOF
user $login_name $password
binary
cd "ftpserver_dir"
lcd $ftpdir
prompt
mput *.txt
bye
EOF
##################################
cd $ftpdir
rm -f *.txt
find $mntdir -name *.txt -mtime +30 -exec rm {} \;
exit 0
##shell END
aix系统巡检,shell部分
最新推荐文章于 2021-09-20 11:25:05 发布