目录:
一.准备数据
二.监控多台机器是否存活
三.多台机器同步依赖包
一.准备数据
1.1 /opt/all/bigdata/ 存在一下目录
/config --配置文件
/iplist --ip列表
/jar --额外的依赖包
/mysql-connector-java-5.1.6.jar --需要同步的依赖包
/log --日志文件
/sh --执行脚本
/ssh.sh --监控方案一脚本
/ping.sh --监控方案二脚本
/mysql-jar.sh --同步依赖包脚本
/sql --sql执行脚本
二.监控多台机器是否存活
2.1 方案一,利用ping命令
查看ping.sh
#!/bin/bash
#Usage:
# ./ping.sh
#------------------------------------------------------
#Filename: ping.sh
#Revision: 1.0
#Date: 2018/07/04
#Author: yjgithub
#Description: Check machine status
#Notes: @163.com
#------------------------------------------------------
for ip in $(cat /opt/all/bigdata/config/iplist) #iplist为IP列表
do
ping -c 1 $ip &>/dev/null #三个ping有一个能通,说明服务器正常
a=$?
sleep 1
ping -c 1 $ip &>/dev/null
b=$?
sleep 1
ping -c 1 $ip &>/dev/null
c=$?
sleep 1
DATE=$(date +%F" "%H:%M)
echo "$DATE"
if [ $a -ne 0 -a $b -ne 0 -a $c -ne 0 ];then
#如果服务不同,可以在此做出自己处理,发邮件给运维
echo "$ip ping is error"
else
echo "$ip ping is successful."
fi
done
2.2 方案二,利用ssh命令
查看ssh.sh脚本
#!/bin/bash
#Usage:
# ./ssh.sh
#------------------------------------------------------
#Filename: ssh.sh
#Revision: 1.0
#Date: 2018/07/04
#Author: yjgithub
#Description: Check machine status
#Notes: @163.com
#------------------------------------------------------
for ip in $(cat /opt/all/bigdata/config/iplist) #iplist为IP列表
do
ssh -o ConnectTimeout=5 $ip date &>/dev/null #ssh 能够返回date 说明服务器正常
a=$?
if [ $a -ne 0 ];then
echo "ssh ${ip} checking is failed."
else
echo "ssh ${ip} is successful."
fi
done
三.多台机器同步依赖包
ps:利用ssh 同步 依赖吧,前提是机器已经建立好ssh关系
查看mysql-jar.sh脚本
#!/bin/bash
#Usage:
# ./mysql-jar.sh
#------------------------------------------------------
#Filename: mysql-jar.sh
#Revision: 1.0
#Date: 2018/07/04
#Author: yjgithub
#Description: update jar to each machine
#Notes: @163.com
#------------------------------------------------------
HOSTNAME_LIST="hadoop001,hadoop002,hadoop003,hadoop004"
JAR=phoenix-4.10.0-cdh5.12.0-server.jar
SOURCEPATH=/opt/sync/jars
TARGETPATH=/opt/cloudera/parcels/CDH/lib/hbase/lib
arr=($HOSTNAME_LIST)
for hostname in ${arr[@]}
do
echo "$hostname:"
ssh "$hostname" "rm -f $TARGETPATH/$JAR"
scp $SOURCEPATH/$JAR "$hostname":$TARGETPATH/$JAR
ssh "$hostname" "ls -l $TARGETPATH/$JAR"
done
ps:可以利用 linux 下的 postfix 该软件,实现发送邮件功能