Mybatis_Aniu
业精于勤而荒于嬉!

导航

 

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 "\n\n\033[0;32;1m--------------${ARR_NAME[i]}:${ARR_IP[i]}-----------------------\e[0m\n\n" |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\n" }
  "password"   { send "${ARR_PASSWORD}\r"}
}
expect "]#"
send -- "sh /home/work/httpload_hive.sh\r"
expect "]#"
send -- "cat /home/work/httpload_hive.log\r" 
send "exit\r"
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\n" } "*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\n"
    expect "password:" { send "1qaz2wsx\n"}    
  }
  "*password:" { send "1qaz2wx" }
}
expect "100%"
expect eof

 

posted on 2017-10-17 19:38  Mybatis_Aniu  阅读(327)  评论(0编辑  收藏  举报