美文网首页
shell脚本使用

shell脚本使用

作者: wudl | 来源:发表于2021-10-08 00:47 被阅读0次

1. 同步脚本 ---xsync

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
  echo Not Enough Arguement!
  exit;
fi
#2. 遍历集群所有机器
for host in bigdata001.com bigdata002.com bigdata003.com
do
  echo ====================  $host  ====================
  #3. 遍历所有目录,挨个发送
  for file in $@
  do
    #4 判断文件是否存在
    if [ -e $file ]
    then
      #5. 获取父目录
      pdir=$(cd -P $(dirname $file); pwd)
      #6. 获取当前文件的名称
      fname=$(basename $file)
      ssh $host "mkdir -p $pdir"
      rsync -av $pdir/$fname $host:$pdir
    else
      echo $file does not exists!
    fi
  done
done

1.1 赋值权限:

[root@bigdata001 bin]# chmod 777 xsync

1.2 使用

[root@bigdata001 module]# xsync bigdatarealtime/
==================== bigdata001.com ====================
sending incremental file list

sent 259 bytes  received 18 bytes  554.00 bytes/sec
total size is 112,524,502  speedup is 406,225.64
==================== bigdata002.com ====================
sending incremental file list
bigdatarealtime/
bigdatarealtime/rt_applog/
bigdatarealtime/rt_applog/Flink-wudl-mock-logger-1.0-SNAPSHOT-jar-with-dependencies.jar
bigdatarealtime/rt_applog/application.yml
bigdatarealtime/rt_applog/gmall2020-mock-log-2020-12-18.jar

sent 112,552,360 bytes  received 85 bytes  75,034,963.33 bytes/sec
total size is 112,524,502  speedup is 1.00
==================== bigdata003.com ====================
The authenticity of host 'bigdata003.com (192.168.1.128)' can't be established.
ECDSA key fingerprint is SHA256:nuBNEaeMRCpZ+wpRfnielQ8IHtxjR5N6d/9YVvh6PHA.
ECDSA key fingerprint is MD5:cb:f7:35:82:a3:30:57:53:07:ff:54:44:c8:d2:c6:59.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'bigdata003.com' (ECDSA) to the list of known hosts.
sending incremental file list
bigdatarealtime/
bigdatarealtime/rt_applog/
bigdatarealtime/rt_applog/Flink-wudl-mock-logger-1.0-SNAPSHOT-jar-with-dependencies.jar
bigdatarealtime/rt_applog/application.yml
bigdatarealtime/rt_applog/gmall2020-mock-log-2020-12-18.jar

sent 112,552,360 bytes  received 85 bytes  75,034,963.33 bytes/sec
total size is 112,524,502  speedup is 1.00


2. 集群启动java jar 包脚本

#!/bin/bash
JAVA_BIN=/opt/module/jdk1.8.0_144
APPNAME=Flink-wudl-mock-logger-1.0-SNAPSHOT-jar-with-dependencies.jar
 
case $1 in
 "start")
   {
    for i in bigdata001.com bigdata002.com bigdata003.com
    do
     echo "========: $i==============="
    ssh $i  "$JAVA_BIN -Xms32m -Xmx64m  -jar /opt/module/bigdatarealtime/rt_applog/$APPNAME >/dev/null 2>&1  &"
    done
  };;
  "stop")
  { 
    for i in  bigdata001.com bigdata002.com bigdata003.com
    do
     echo "========: $i==============="
     ssh $i "ps -ef|grep $APPNAME | grep -v grep|awk '{print \$2}'| xargs kill" >/dev/null 2>&1
    done
  };;
   esac

2.1 赋值权限

chmod 777  logger.sh

2.2 使用

./logger.sh start / stop

[root@bigdata001 bin]# ./logger.sh  start
========: bigdata001.com===============
========: bigdata002.com===============
========: bigdata003.com===============
[root@bigdata001 bin]# 

3. zookeeper 集群启动脚本

#! /bin/bash

case $1 in
"start"){
    for i in bigdata001.com bigdata002.com bigdata003.com
    do
        ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh start"
    done
};;
"stop"){
    for i in bigdata001.com bigdata002.com bigdata003.com
    do
        ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh stop"
    done
};;
"status"){
    for i in bigdata001.com bigdata002.com bigdata003.com
    do
        ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh status"
    done
};;
esac

3.1 赋值权限

chmod 777  zk.sh

3.2 使用

./zk.sh start /stop
[root@bigdata001 bin]# ./zk.sh start
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@bigdata001 bin]# 

=========================================================================================================

4. kafka 集群启动

#! /bin/bash
case $1 in
"start"){
        for i in bigdata001.com bigdata002.com bigdata003.com
        do
                echo " --------启动 $i Kafka-------"
                # 用于KafkaManager监控
                ssh $i "export JMX_PORT=9988 && /opt/module/kafka_2.11-0.11.0.2/bin/kafka-server-start.sh -daemon /opt/module/kafka_2.11-0.11.0.2/config/server.properties "
        done
};;
"stop"){
        for i in bigdata001.com bigdata002.com bigdata003.com
        do
                echo " --------停止 $i Kafka-------"
                ssh $i "/opt/module/kafka_2.11-0.11.0.2/bin/kafka-server-stop.sh stop"
        done
};;
esac

4.1 赋值权限

chmod 777  kf.sh

4.2 使用

./kf.sh start/stop

[root@bigdata001 bin]# ./kf.sh start
 --------启动 bigdata001.com Kafka-------
 --------启动 bigdata002.com Kafka-------
 --------启动 bigdata003.com Kafka-------
[root@bigdata001 bin]# 

========================================================================================================

5.

相关文章

网友评论

      本文标题:shell脚本使用

      本文链接:https://www.haomeiwen.com/subject/hsptoltx.html