日历

2013年四月
« 3月   5月 »
1234567
891011121314
15161718192021
22232425262728
2930  

最近评论

    linux企业应用

    linux expect 交互式登陆服务器查看磁盘使用的脚本的再次修改

    磁盘容量使用情况的脚本经过一段时间的使用后,再次做出了修改。
    两个shell文件名也作了修改。分别为diskInfoChuri.sh和getDiskInfo.sh,这样名字更加符合shell的功能。
    在diskInfoChuri.sh脚本中,对信息处理的共通部分进行了提取,作为一个共通函数。
    输出的信息也稍有变化。
    getDiskInfo.sh脚本的处理方法没有改变,还是以前的样子,只是脚本名字改了下,更能描述脚本的功能。
    以下是两个脚本的内容:

    diskInfoChuri.sh#!/bin/bash
    #!/bin/bash
    #!/usr/bin/expect -f

    date  #打出开始时间
    TODAY_DATE=`date ‘+%Y%m%d’`
    user1=”oracle”
    user2=”svnroot”
    password1=”oracle”
    password2=”svnroot”
    host1=192.168.1.102
    host2=192.168.1.101
    hostName1=”oracle服务器”
    hostName1=”SVN服务器”
    #取得工作目录
    WORK_PATH=”$(cd $(dirname $0);pwd)”
    #WORK_PATH=”$(dirname $WORK_PATH)”
    LOG_FILE=”${WORK_PATH}/diskInfo_${TODAY_DATE}.log”
    LOG_FILE_CHURI=”${WORK_PATH}/diskInfo_CHURI.log”
    TMP_FILE1=”${WORK_PATH}/tmp1.log”
    TMP_FILE2=”${WORK_PATH}/tmp2.log”
    if [  -e ${LOG_FILE} ]; then
    rm ${LOG_FILE}
    fi
    #1:如果磁盘的容量有大于80%的,将服务器的名字写到mail.log中
    #2:已经写进去了,就不再写了
    serverLog=1

    churi()
    {

    printServerLog=1
    #下面的sed ‘s/\r/\n/g’是将dos格式的回车换成unix格式的换行,如果没有这个处理,就会报错。
    #有时候Filesystem的长度>20时,本应该在一行的信息,显示到了两行,所以awk要做特殊处理.
    cat ${1} | egrep -v “^$|spawn|apl|Filesystem” |sed ‘s/\r/\n/g’|awk ‘{if(NF==1){str=$1;}else if(NF==5){print str” “$0;} else if(NF==6){print $0}}’>${2}

    while read LINE
    do
    PERC=`echo $LINE | awk ‘{print $5}’| sed ‘s:%::g’`
    if  [[ “$?” != “0” ]] ; then
    echo “在文件${4}中存在错误,请核实” |tee -a ${3}
    fi
    FILE=`echo $LINE | awk ‘{print $6}’`
    if  [[ “$?” […]