zoukankan      html  css  js  c++  java
  • Linux/hp unix/AIX日常巡检脚本(转)

    以下为Linux/hp unix/AIX日常巡检脚本,大家可以参考着进行改写,用于自己的服务器。

    #!/usr/bin/ksh

    syserrdate=`date +"%m/%d"`
    errcount=0
    STATUS=
    HOSTS=`hostname`
    SCRIPT=`basename $0`
    REPORT="/tmp/report.txt"

    #FS percent
    FILESYSTEM_CHECK() {
    FS=`df -k|sed '1d'|awk 'sub("%","",$4) {if ($4 > 80) print $7}'|xargs`
    for i in $FS
    do
    echo "The $i filesystem percent more than %80 n"
    done
    }

    #Active VG
    VG_CHECK() {
    echo "****************************ACTIVE VG****************************n"
    ACVG=`lsvg -o|xargs`
    echo "Active VG is: $ACVGn"
    #LV_CHECK 
    echo "***************************PROBLEM LV****************************n"
    BLV=`lsvg -l rootvg|grep -E "jfs|jfs2|raw"|grep -v 'N/A'|awk '{if ($6~/closed/ || $6~/stale/) print $1}'|xargs`
    for i in $BLV
    do
    echo "The $i filesystem has a problem!!!n"
    done
    }

    #Problem disk
    DISK_CHECK() {
    echo "***************************Problem disk***************************n"
    disk=`lsvg -o|lsvg -ip|awk '$1~/hdisk/ && $2!~/active/ {print $1}'|xargs`
    if [ "$disk" != "" ]
    then
    for i in $disk
    do
    echo "The $disk in $i has a problem!!!n"
    done
    fi
    }

    #error report
    ERROR_CHECK() { 
    echo "***************************error report***************************n"
    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
    if [ "$errcount" -eq 0 ]
    then
    echo "Today error is add $errcount yesterdayn"
    else
    echo "Today errors is add $errcount than yesterdayn"
    fi

    #error detail
    errors=`errpt -dH -TPERM`
    if [ -z "$errors" ]
    then
    echo "The Hardware is ${STATUS:-NORMAL}.n"
    else
    echo "The permanent error of Hardware as fllow:n`errpt -dH -TPERM`"
    fi
    }

    #Check Database
    DB_CHECK() {
    su - oracle -c "lsnrctl status"|grep -i "no listener"
    if [ $? = 1 ]
    then
    echo "The listener status is ${STATUS:-NORMAL}n"
    else
    echo "The listener has a problem!!!n"
    fi
    #echo "The listener status is :`su - oracle -c "lsnrctl status"`n"
    #echo "Database status is:"
    #su - oracle -c "sqlplus -s /nolog"<<EOF|sed '/^$/d'
    #conn /as sysdba
    #select log_mode,name,open_mode from v$database;
    #quit
    #EOF
    su - oracle -c "sqlplus -s /nolog"<<EOF|sed '/^$/d' 2>/dev/null|grep -i "ORACLE not avail
    able"
    conn /as sysdba
    select log_mode,name,open_mode from v$database;
    quit
    EOF
    if [ $? = 0 ]
    then
    echo "The database not available!!!n"
    else
    echo "The database is NORMALn"
    fi
    }

    #HBA card link
    HARDWARE_CHECK() { 
    fget_config -Av|grep -i dacnone>>/dev/null
    if [ $? -eq 0 ]
    then
    echo "The storage link has problem!!!"
    else
    echo "The storage link NORMAL!"
    fi
    }

    #HACMP CHECK
    HA_CHECK() {
    echo "The HACMP status is: `lssrc -g cluster|sed '1d'`"
    }

    #CHECK SNA
    SNA_CHECK() {
    echo "The SNA LINK STATUS is:`sna -d l`"
    echo "The SNA SESSION has problem as fllows:n"
    sna -d sl|tail +4|awk 'BEGIN { OFS="t"; print "name","tactsess","actconw"}{if ($7 == 0 && $8 == 0) print $1, $7,$8}'
    }

    #CHECK CICS
    CICS_CHECK() {
    echo "The not active CICS is as fllows:n"
    lssrc -a|grep cics|awk '$3!~/active/ {print $1}'
    }

    echo $SCRIPT >$REPORT
    echo $HOSTS >> $REPORT
    echo "IP ADDRESS:`ifconfig -a|grep -w inet|grep -v 127.0.0.1|awk '{print $2}'`" >> $REPORT
    netstat -v|grep -E "STAT|Link" >>$REPORT
    oslevel >> $REPORT

    FILESYSTEM_CHECK >>$REPORT 2>&1
    VG_CHECK >>$REPORT 2>&1
    DISK_CHECK >>$REPORT 2>&1
    ERROR_CHECK >>$REPORT 2>&1
    DB_CHECK >>$REPORT 2>&1
    HARDWARE_CHECK >>$REPORT 2>&1

    lslpp -L|grep cluster >/dev/null
    if [ $? -eq 0 ]
    then
    HA_CHECK >>$REPORT 2>&1
    else
    echo "This machine not install HACMP" >> $REPORT
    fi

    lslpp -L|grep "sna.rte" >/dev/null
    if [ $? -eq 0 ]
    then
    SNA_CHECK >>$REPORT 2>&1
    else
    echo "This machine not install sna" >> $REPORT
    fi

    lslpp -L|grep -i cics >/dev/null
    if [ $? -eq 0 ]
    then
    CICS_CHECK >>$REPORT 2>&1
    else
    echo "This machine not install cics" >> $REPORT
    fi


    ========================================================


    #! /bin/sh
    cd /home/check
    logname=check.`hostname`.`date +"%y%m%d%H%M"`.txt

    echo "system log starting......" >$logname


    echo "Filesystem disk use checking started" >>$logname
    echo "#df -h" >>$logname
    df -h >>$logname 2>&1 
    echo "filesystem disk ustage checking completed" >>$logname

    echo "VG checking started." >>$logname
    echo "check vg status" >>$logname
    echo "# vgdisplay -v" >>$logname
    vgdisplay -v >>$logname
    echo "VG checking completed." >>$logname


    echo "System log checking started.....">>$logname
    echo "# tail -n 50 /var/log/messages" >>$logname
    tail -n 50 /var/log/messages >>$logname

    echo " showing root's mail" >>$logname
    cat /var/spool/mail/root >mail.now
    diff -e mail.ref mail.now |awk 'NR>1 {print $0}'>>$logname
    mv mail.now mail.ref

    echo "showing user login history since last day" >>$logname
    last >last.now
    diff -e last.ref last.now |awk 'NR>1 {print $0}'>>$logname
    mv last.now last.ref >>$logname

    echo "Crontab using and error log starting..">>$logname
    crontab -l >>$logname
    tail -n 30 /var/log/cron >>$logname

    echo "#########################">>$logname
    echo " System process checking started " >>$logname
    echo "#dmesg">>$logname
    dmesg >>$logname
    echo "#ps -ef |grep defunc">>$logname
    ps -ef |grep defunc >>$logname

    echo "#service named status">>$logname
    service named status >>$logname

    echo " #uptime" >>$logname
    uptime >>$logname
    echo " System process checking completed ">>$logname


    echo "#########################">>$logname
    echo " networking checking Start.">>$logname
    echo "#service network status " >>$logname
    service network status >>$logname
    echo "#netstat -in " >>$logname
    netstat -in >>$logname
    echo "#netstat -rn " >>$logname
    netstat -rn >>$logname
    echo "#netstat -ntapl " >>$logname
    netstat -ntapl >>$logname

    echo " networking checking completed " >>$logname


    #echo "#########################">>$logname
    #echo "performance and paging space checking start..." >>$logname
    #top >top.now
    #cat top.now>>$logname


    echo "performance and paging space checking started" >>$logname
    echo "#vmstat 1 10 " >>$logname
    vmstat 1 10 >>$logname

    echo "#free -l ">>$logname
    free -l >>$logname
    echo "performance and paging space checking completed" >>$logname


    echo " showing command used history since last day " >>$logname
    cat /.sh_history >sh_history.now
    diff -e sh_history.ref sh_history.now |awk 'NR>1 {print $0}' >>$logname
    mv sh_history.now sh_history.ref


    echo " system logging completed " >>$logname

    # now ftp to the log server
    ftp -i -n <<EOF
    open 10.0.99.5
    user root vmware
    lcd /home/check
    put $logname
    bye
    EOF

    cd /home/check
    mv $logname /home/check/syslog/

  • 相关阅读:
    python基础一 day40 守护线程
    python基础一 day40 线程复习
    python基础一 day39 线程探索
    python基础一 day39 复习-回调函数
    python基础一 day38 进程池代码
    python基础一 day38 进程间的数据共享
    python基础一 day38 管道
    python基础一 day18 认识正则表达式及探索
    python小白-day3 函数
    python小白-day3 深浅拷贝
  • 原文地址:https://www.cnblogs.com/peter316/p/6287193.html
Copyright © 2011-2022 走看看