linux下检测脚本

目录:

一.准备数据
二.监控多台机器是否存活
三.多台机器同步依赖包

一.准备数据

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 该软件,实现发送邮件功能

猜你喜欢

转载自blog.csdn.net/yjgithub/article/details/80913872