• shell 多台服务器收集错误日志


    1.多台服务器收集错误日志

    #!/bin/bash
    
    DATE=`date +%Y%m%d-%H%M%S`
    cd `dirname $0`
    HOME_DIR=`pwd`
    
    log=$HOME_DIR/logs/httpload_hive.log
    
    ARR_IP=(
    "10.0.0.1" 
    "10.0.0.2" 
    "10.0.0.3" 
    )
    
    ARR_PASSWORD=(
    "1qaz2wsx" 
    "1qaz2wsx" 
    "1qaz2wsx" 
    )
    
    ARR_NAME=(
    "master.hadoop.dc" 
    "slave1.hadoop.dc" 
    "slave2.hadoop.dc" 
    )
    
    ARR_LEN=${#ARR_IP[*]}
    i=0
    while [ $i -lt ${ARR_LEN} ]
    do 
    echo -e "
    
    33[0;32;1m--------------${ARR_NAME[i]}:${ARR_IP[i]}-----------------------e[0m
    
    " |tee -a $log
    expect - << EOF > $HOME_DIR/logs/tmp.log
    spawn ssh -l root ${ARR_IP[i]}
    set timeout 30
    expect {
      "(yes/no)?"  { send "yes
    " }
      "password"   { send "${ARR_PASSWORD}
    "}
    }
    expect "]#"
    send -- "sh /home/work/httpload_hive.sh
    "
    expect "]#"
    send -- "cat /home/work/httpload_hive.log
    " 
    send "exit
    "
    expect eof
    EOF
    
    cat $HOME_DIR/logs/tmp |grep -v logout |grep -v Last |grep -v password |tee -a $log
    let i++
    done
    
    rm -rf $HOME_DIR/logs/tmp

    2.去重日志的错误信息

    #脚本名称:httpload_hive.sh
    #!/bin/bash cd `dirname $0` HOME_DIR=`pwd` DATE=`date +%F` HTTP_DIR="/home/work/httpload" grep "[$DATE" ${HTTP_DIR}/httpload.log |grep -E "ERROR|WARN" > ${HOME_DIR}/tmp.log awk -F " " '!a[$5]++' ${HOME_DIR}/tmp.log > ${HOME_DIR}/httpload_hive.log rm -rf ${HOME_DIR}/httpload_hive.log

    3.多台服务器传送文件

    #!/bin/bash
    #!/usr/bin/expect
    
    cd `dirname $0`
    HOME_DIR=`pwd`
    host_list=${HOME_DIR}/server_list.conf
    cat ${host_list} |while read line
    do 
      host_ip=`echo $line` |awk '{ print $1}'
      #新建文件夹
      ./allmkdir.sh $host_ip
      #复制文件到当前目录
      ./allscp.sh $host_ip
     done

    server_list.conf文件

    10.0.0.1
    10.0.0.2
    10.0.0.3
    10.0.0.4
    10.0.0.5
    10.0.0.6

    4.单台服务器新建文件夹

    #脚本名称:allmkdir.sh

    #!/usr/bin/expect set host [lindex $argv 0] set timeout 3 spawn ssh root@$host expect { "*(yes/no)?" { send "yes " } "*password:" { send "1qaz2wx" } } expect "*#" send "mkdir -p /home/work/logs" expect eof

    5.单台服务器传递文件

    #脚本名称:allscp.sh
    #!/usr/bin/expect
    
    FILE="httpload_hive.sh"
    HOME_DIR="/home/work/"
    
    set host [lindex $argv 0]
    set timeout 3
    spawn scp ${HOME_DIR}${FILE} root@$host:${HOME_DIR}${FILE}
    expect {
      "*(yes/no)?" {
        send "yes
    "
        expect "password:" { send "1qaz2wsx
    "}    
      }
      "*password:" { send "1qaz2wx" }
    }
    expect "100%"
    expect eof
  • 相关阅读:
    数据库中索引的概念
    将博客搬至CSDN
    数据结构之图(图的基本操作)
    数据结构之图(图的简介)
    数据结构树之红黑树
    图解数据结构树之AVL树
    排序算法之选择排序
    数据结构树之二分查找树
    Kali-Dos洪水攻击之Hping3
    Linux系统查看CPU使用率命令
  • 原文地址:https://www.cnblogs.com/aniuzaixian/p/7683501.html
Copyright © 2020-2023  润新知