郑爽爸爸是做什么的:aix系统检查脚本

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 19:19:19
!/bin/ksh
#
# 首先载入配置文件,如果配置文件不存在,则报错退出
#
SOURCE=$HOME/config/config
check_source()
{
if [ -r $SOURCE ]; then
. $SOURCE
else
echo "$(basename $0): Cannot locate the default setting file."
exit 1
fi
}
#
# 定义报表头
#
report_header()
{
HOSTIP=$(ifconfig -a | sed -n '2p' |awk '{print $2}')
HOSTNAME=$(hostname)
USER=`who am i | cut -d " " -f1`
cat<Hostname: $HOSTNAME Server: $HOSTIP
User: $USER Time: $(date +%Y'-'%m'-'%d' '%H':'%M':'%S)SYSTEM CHECK REPORT
===================
 
!
}#
# 定义日志文件存放的目录和日志文件名,将当前用户目录设置为LOG_PATH
#
LOG_PATH=$(echo $HOME)
LOG_FILE=$LOG_PATH/log`date +%Y%m%d%H%M%S`#
# 备份历史文件
#
cd $LOG_PATH
test -f log2007*
if [ "$?" -eq 0 ];then
mv $LOG_PATH/log2007* $LOG_PATH/niyl/ >/dev/null 2>&1
else
:
fi#define temp directory ,if not exist,create temp directory first.
TEMP_PATH=$LOG_PATH/temp
if [ -d $TEMP_PATH ];then
:
else
mkdir $TEMP_PATH
fi#
# 载入环境设置
#
check_source#
# 输出报表头信息
#
report_header >>$LOG_FILE
  
# 检查 CPU的使用情况,这里使用vmstat命令
echo "***************************************** Check CPU *****************************************">>$LOG_FILE
vmstat 1 10 | awk '{print $0;if($1 ~ /^[0-9].*/) (totalcpu+=$16);(avecpu=100-totalcpu/10)}; END {print "The average usage of cpu is :"avecpu}' >$TEMP_PATH/cpu_infocat $TEMP_PATH/cpu_info >>$LOG_FILEcpu_used_pct=`cat $TEMP_PATH/cpu_info | grep "The average usage of cpu is" |awk -F ":" '{print $2}' `
if [ "$cpu_used_pct" -gt "$CPU_VALUE" ] ; then
echo "LOG-Warnning:`date +%Y'-'%m'-'%d' '%H':'%M':'%S`, CPU负载超过阀值设置,请检查系统!!">>$LOG_FILE
else
echo "\t\t\t\t CPU负载正常!!">>$LOG_FILE
fi#
# 内存使用监控,包括交换区的使用情况监控
#
echo >>$LOG_FILE
echo >>$LOG_FILE
echo "***************************************** check memory useage *****************************************">>$LOG_FILE
cat $TEMP_PATH/cpu_info | awk '{print $0;if($1 ~ /^[0-9].*/) (totalpi+=$6)(totalpo+=$7)};\
END {if(totalpi<10 && totalpo<10) print "\t\t\t\tMemory负载正常!!"; if(totalpi>10 || totalpo>10) print "Memory负载异常,请检查系统!!"} '>>$LOG_FILE
#
# 检查磁盘空间
#
echo >>$LOG_FILE
echo >>$LOG_FILE
echo "***************************************** check disk space *****************************************">>$LOG_FILE
df -k >>$LOG_FILE
df -k |grep -v proc |grep -v Filesystem |awk '{x=1*$4}{print $1","$2","$3","$4","$5","$6","$7}'>$TEMP_PATH/disk_infocat $TEMP_PATH/disk_info | grep -v '^#' | while read line
do
item1=$(echo $line | awk -F ',' '{print $1}')
item2=$(echo $line | awk -F ',' '{print $2}')
item3=$(echo $line | awk -F ',' '{print $3}')
item4=$(echo $line | awk -F ',' '{print $4}' |awk -F '%' '{print $1}')
item5=$(echo $line | awk -F ',' '{print $5}')
item6=$(echo $line | awk -F ',' '{print $6}')
item7=$(echo $line | awk -F ',' '{print $7}')
if [ "$item4" -gt "$DISK_VALUE" ]; then
echo "LOG-Warnning: `date +%Y'-'%m'-'%d' '%H':'%M':'%S`, 磁盘$item7\t剩余空间不足,请处理!!" >>$LOG_FILE
else
echo "\t\t\t\t 磁盘空间$item7\t\t使用正常!!" >>$LOG_FILE
fi
done#
# 检查磁盘的io进行监控,iostat
#
echo >>$LOG_FILE
echo >>$LOG_FILE
echo "***************************************** check iostat *****************************************">>$LOG_FILE
iostat 1 3 >>$LOG_FILE#
# 对网络流量进行监控,在这里可以作一个主机列表,对每个主机ping检查网络是否连通。
#
echo >>$LOG_FILE
echo >>$LOG_FILE
echo "***************************************** check netstat *****************************************">>$LOG_FILE
netstat -i >>$LOG_FILE#
# 检查主机的告警日志
#
echo >>$LOG_FILE
echo >>$LOG_FILE
echo "***************************************** check system err *****************************************">>$LOG_FILE
errpt | head -10 >>$LOG_FILE
day=`date +%D |awk -F "/" '{print $1$2}'`
errpt | awk '{print $2}' | grep ^$day
if [ $? -eq 0 ] ; then
echo "LOG-Warnning: `date +%Y'-'%m'-'%d' '%H':'%M':'%S`,The system has found a error today.Please check the error report." >>$LOG_FILE
else
echo >>$LOG_FILE
echo "\t\t\t\t There is no system error report today.System is OK!!" >>$LOG_FILE
fi#
# 检查HA的运行是否正常
#
echo >>$LOG_FILE
echo >>$LOG_FILE
echo "***************************************** check HACMP status *****************************************">>$LOG_FILE
/usr/es/sbin/cluster/clstat -o > $TEMP_PATH/ha_info
lssrc -g cluster >> $TEMP_PATH/ha_info
cat $TEMP_PATH/ha_info >>$LOG_FILE
echo >>$LOG_FILE
cat $TEMP_PATH/ha_info| grep "Node:" |awk -F ':' '{print $2,$3}' | awk '{print $1,$3}' | while read line
do
node=$(echo $line | awk '{print $1}')"'s"
echo $line |grep UP$ >/dev/null
if [ "$?" -eq 0 ]; then
echo "\t\t\t\t The node $node is OK!!" >>$LOG_FILE
else
echo "`date +%Y'-'%m'-'%d' '%H':'%M':'%S`,LOG-Warnning: The node $node status is DOWN ,it was terminated ."
>>$LOG_FILE
fi
done