shell集群同步脚本②

注意:脚本放在~/bin目录下,并设置权限为777

① 集群列表脚本:需要同步的节点。
vim node.list

node01
node02
node03

② 集群文件分发脚本:用于分发集群文件。
vim ssh_do_scp.sh

#!/bin/bash

if [ $# -lt 3 ];
then
  echo "Usage: $0 <node-list-file> <source-file> <target-file>"
  exit
fi

nodeList=$1
files=$2
target=$3
noscp=node01


for node in $(cat $nodeList)
do
  if [ $node == $noscp ]; then
     echo ====================  $node  ====================
     echo "skip node01"
  else
     echo ====================  $node  ====================
     #判断是文件还是目录
     if [ -f $files ];then
         #传送单个文件
         echo "param is file"
         scp $files root@$node:$target
     elif [ -d $files ];then
         #遍历所有目录,挨个发送
         echo "param is dir"
         scp -r $files root@$node:$target
     else
         echo "file or dir is not exist"
     fi
  fi
done

③ 集群同步命令脚本: 用于集群内各节点执行相同命令
vim ssh_do_all.sh

#! /bin/bash
nodeList=$1
commond=$2
if [ $# -lt 2 ];
then 
  echo "Usage: $0 <node-list-file> <commond>"
  exit
fi

for node in $(cat $nodeList)
do
 echo ====================  $node  ====================
 ssh -t $node $commond
done

④ 测试
测试文件分发脚本
在这里插入图片描述

测试同步命令脚本

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: etcd集群的一键部署可以使用shell脚本来实现。具体步骤如下: 1. 准备好etcd二进制文件和配置文件,可以从官网下载或自行编译。 2. 编写一个shell脚本,包含以下步骤: a. 创建etcd集群所需的目录和文件,如数据目录、日志文件等。 b. 将etcd二进制文件和配置文件复制到相应的目录中。 c. 修改配置文件中的参数,如节点名称、监听地址、集群地址等。 d. 启动etcd节点,可以使用systemd或nohup等方式。 3. 执行shell脚本,即可完成etcd集群的一键部署。 需要注意的是,etcd集群的部署需要考虑节点之间的通信和同步,以及数据的备份和恢复等问题。在实际部署过程中,需要根据实际情况进行调整和优化。 ### 回答2: ### 回答3: etcd是一个分布式的键值存储系统,可用于多种不同的用途,例如在容器编排系统Kubernetes中用作集群状态存储,以及在Docker Swarm等系统中用作服务发现。在etcd中,数据以键值对的形式存储,可以在多个节点上进行备份和复制。 要在多个节点上部署etcd集群,最好的方式可能是使用shell脚本。以下是一些步骤,可以帮助您实现etcd集群的快速部署: 1. 首先,在每个节点上安装etcd二进制文件和依赖项。您可以使用以下命令进行安装(适用于CentOS7): ``` yum install etcd -y ``` 2. 接下来,您需要设置etcd的配置文件。您可以在每个节点上创建一个名为etcd.conf的文件,其中应至少包含以下内容: ``` name = "etcd-1" # 节点名称 initial-advertise-peer-urls = "http://<node1_IP:2380>" # 节点1与其他节点通信的IP和端口 listen-peer-urls = "http://<node1_IP:2380>,http://<node2_IP:2380>,http://<node3_IP:2380>" # 节点1与其他节点通信的IP和端口 advertise-client-urls = "http://<node1_IP:2379>" # 用于客户端访问的IP和端口 listen-client-urls = "http://<node1_IP:2379>,http://<node2_IP:2379>,http://<node3_IP:2379>" # 客户端要监听哪个IP和端口 initial-cluster-token = "etcd-cluster-token" # 集群token,所有节点必须相同 initial-cluster = "etcd-1=http://<node1_IP>:2380,etcd-2=http://<node2_IP>:2380,etcd-3=http://<node3_IP>:2380" # 初始集群中的节点 initial-cluster-state = "new" # 新建集群 ``` 您需要根据您的实际设置更改IP地址和端口。 3. 现在,您可以使用以下命令来启动etcd: ``` etcd --config-file=/etc/etcd.conf ``` 或者,您可以使用shell脚本,像这样: ``` #!/bin/bash systemctl start etcd ``` 将此脚本保存为etcd.sh,然后在每个节点上运行它。 4. 最后,验证您的etcd集群是否正常工作。您可以使用以下命令: ``` etcdctl -C http://<any_node_ip>:2379 member list ``` 这将返回所有节点的信息,以及它们的状态。 以上就是一个简单的etcd集群shell一键部署过程,您可以根据实际情况进行修改。希望这对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值