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