2020-11-25

备注:
1.关闭服务器的防火墙
2.关闭selinux
3.确保hosts里面做了映射
4.集群之间做了免密登陆

一、文件分发脚本

确保每台服务器安装了 rsync

cd /home/自己的用户名
mkdir bin
cd bin
vim test.sh
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径 –P指向实际物理地址,防止软连接
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
ip_list=`cat /etc/hosts|grep -vE "localhost"|cut  -d  " "  -f  1`
for ip in $ip_list; do
        echo -------------------- $ip --------------------
        rsync -rvl $pdir/$fname $user@$ip:$pdir
done
chmod 777 test.sh
sh test.sh 需要分发的文件

二、集群修改时间

cd /home/自己的用户名
mkdir bin
cd bin
vim test.sh
#!/bin/bash
ip_list=`cat /etc/hosts|grep -vE "localhost"|cut  -d  " "  -f  1`
for ip in $ip_list; do
echo "========== $ip =========="
ssh $ip "sudo date -s $1"
done
chmod 777 test.sh
test.sh 2020-01-01

三、在某段时间内按天执行脚本

1.日期格式为 yyyy-MM-dd格式
2.按照天数执行,范围为左闭右开

cd /home/自己的用户名
mkdir bin
cd bin
vim test.sh
#!/bin/bash
if [ $# == 2 ]; then
    start_day=$1
    end_day=$2
else
    echo "请输入开始时间和结束日期,格式为yyyy-MM-dd"
    exit 1
fi
time=$(($(date +%s -d "${end_day}") - $(date +%s -d "${start_day}")));
day_count=$((${time}/(3600*24)+1))
for (( i=0; i<=$day_count; i++));
do
day=`date -d "$start_day +$i days" "+%F"`
echo "++++++++++++++++++++$day++++++++++++++++++++"
if (($end_day == $day));then
break
fi
sh 需要执行的脚本 $day
done
chmod 777 test.sh
sh test.sh 2020-01-01 2020-01-05

四、查看集群进程

cd /home/自己的用户名
mkdir bin
cd bin
vim test.sh
#!/bin/bash
ip_list=`cat /etc/hosts|grep -vE "localhost"|cut  -d  " "  -f  1`
for ip in $ip_list;  do
		echo "========== $i =========="
        ssh $ip "$*"
    done
chmod 777 test.sh
sh test.sh jps

五、集群开启/关闭zookeeper

cd /home/自己的用户名
mkdir bin
cd bin
vim test.sh
#!/bin/bash
case $1 in
"start"){
	ip_list=`cat /etc/hosts|grep -vE "localhost"|cut  -d  " "  -f  1`
   	for ip in $ip_list; do
		echo "========== $ip=========="
        ssh $i "zookeeper安装目录/bin/zkServer.sh start"
    done
};;
"restart"){
	ip_list=`cat /etc/hosts|grep -vE "localhost"|cut  -d  " "  -f  1`
    for ip in $ip_list; do
    do
        echo "========== 启动 $ip zookeeper =========="
        ssh $ip "zookeeper安装目录/bin/zkServer.sh  restart"
    done
};;
"stop"){
	ip_list=`cat /etc/hosts|grep -vE "localhost"|cut  -d  " "  -f  1`
    for ip in $ip_list; do
		echo "========== 停止 $ip zookeeper =========="
        ssh $ip "zookeeper安装目录/bin/zkServer.sh  stop"
    done
};;
"status"){
	ip_list=`cat /etc/hosts|grep -vE "localhost"|cut  -d  " "  -f  1`
    for ip in $ip_list; do
		echo "========== 状态 $ip zookeeper =========="
        ssh $ip "zookeeper安装目录/bin/zkServer.sh  status"
    done
};;
esac
chmod 777 test.sh
#集群启动zookeeper
sh test.sh start
#集群停止zookeeper
sh test.sh stop
#查看集群zookeeper的状态
sh test.sh status

六、集群开启/关闭Kafka

kafka依赖zookeeper
开启Kafka之前确保zookeeper已经启动
停止Kafka后再停止zookeeper

cd /home/自己的用户名
mkdir bin
cd bin
vim test.sh
#! /bin/bash
case $1 in
"start"){
	ip_list=`cat /etc/hosts|grep -vE "localhost"|cut  -d  " "  -f  1`
    for ip in $ip_list; do
        echo "========== 启动 $ip kafka ========== "
        # 用于KafkaManager监控
    ssh $ip "export JMX_PORT=9988 && kafka安装目录/bin/kafka-server-start.sh -daemon  kafka安装目录/config/server.properties "
   done
};;
"stop"){
	ip_list=`cat /etc/hosts|grep -vE "localhost"|cut  -d  " "  -f  1`
    for ip in $ip_list; do
    	echo " ========== 停止 $ip Kafka =========="
        ssh $ip " kafka安装目录/bin/kafka-server-stop.sh stop"
   	done
};;
esac
chmod 777 test.sh
#启动Kafka
sh test.sh start
#停止Kafka
sh test.sh stop
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页