avatar

技术小站

老骥伏枥,日行千里

  • 首页
  • Java
  • Web
  • 框架
  • 微服务
  • 架构
  • 数据库
  • 中间件
  • 研发
  • 关于
Home xsync同步脚本的使用
文章

xsync同步脚本的使用

Posted 2023-11-18 Updated 2023-11- 18
By 管理员
9~12 min read

1.简介

在集群机器配置时,经常需要将一个文件或目录copy到同样的多台集群上,如果一个一个机器去复制,比较麻烦。如果有一个办法,通过一条命令就可以实现这个目的,就简单多了。xsync就是这样一个同步脚本。xsync其实是对rsync脚本的二次封装,脚本内容可以根据自己需要进行修改。

2.配置集群hostname

2.1 配置hostname文件

在每台机器执行命令

echo hostname1 > /etc/hostname
hostname hostname1

备注:hostname1 为主机名,最好能标识主机用途,例如:kafkaos1、kafkaos2。

2.2 配置hosts文件

修改完hostname后,将集群集群名称都加入到/etc/hosts文件中,以后登录不同机器,直接使用hostname而不用IP。 示例:

10.8.10.111 kafkaos1
10.8.10.112 kafkaos2
10.8.10.113 kafkaos3

3.配置免密登录

3.1 生成rsa密钥

使用命令ssh-keygen 生成rsa密钥,配置信息直接回车即可, 生成的密钥默认在当前用户主目录的.ssh目录下。 密钥文件有两个:

id_rsa 存放着私钥 id_rsa.pub 存放着公钥 命令执行结果如下:

[root@zkos1 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:kXclvgbcNBCbW9Z88eP1brP1TtPOc+YAuWTw0xi4QrU root@zkos1
The key’s randomart image is:
±–[RSA 2048]----+
| +o+ … |
| + O * o|
| + E B o.+|
| . o X …+|
| S o @ …|
| . + + …|
| . .o|
| BO|
| =O|
±—[SHA256]-----+

3.2 copy机器自身公钥到目标机器

ssh-copy-id kafkaos1

3.3 远程登录测试

输入命令

ssh root@kafkaos1

此时不再需要输入命令,可直接登录成功(若第一次连接,需保持对方公钥,提升时输入yes即可)。

4.xsync脚本使用

4.1 安装rsync脚本

xsync是对rsync脚本的二次封装,所以需要先下载rsync命令。 使用以下命令即可安装

yum install -y rsync

4.2 添加xsync脚本

在/usr/local/bin目录下添加 xsync.sh脚本,脚本内容如下

#!/bin/sh

# 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount!=4)); then
    echo Usage: $0 filename servername startno endno
    exit;
fi


# 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

# 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
# 获取当前用户名称
user=`whoami`
# 获取hostname及起止号
slave=$2
startline=$3
endline=$4

# 循环
for((host=$startline; host<=$endline; host++)); do
    echo $pdir/$fname $user@$slave$host:$pdir
    echo ==================$slave$host==================
    rsync -rvl $pdir/$fname $user@$slave$host:$pdir
done

该脚本经过修改,需要携带4个参数,分别是

  • filename 待发送的文件或目录名
  • servername 服务器前缀名
  • startno 服务器编号起始编号
  • endno 服务器编号终止编号

4.3 测试

例如我要将当前目录下的a.t文件同步到服务器kafkaos2、kafkaos3上,使用命令

xsync a.t kafkaos 2 3

执行结果如下

fname=a.t
pdir=/root
/root/a.t root@kafkaos2:/root
kafkaos2
sending incremental file list
a.t
sent 470 bytes received 35 bytes 1,010.00 bytes/sec
total size is 383 speedup is 0.76
/root/a.t root@kafkaos3:/root
kafkaos3
sending incremental file list
a.t
sent 470 bytes received 35 bytes 336.67 bytes/sec
total size is 383 speedup is 0.76
Linux
Linux
License:  CC BY 4.0
Share

Further Reading

Apr 27, 2025

当 SSH 登录 CentOS 7 系统时认证缓慢的解决方案

当 SSH 登录 CentOS 7 系统时认证缓慢,可尝试以下方法来解决: 1. 禁用 DNS 反向解析 SSH 服务器在认证时可能会进行 DNS 反向解析,这可能会耗费大量时间。你可以通过修改 SSH 配置文件来禁用此功能。 首先,使用以下命令打开 SSH 配置文件: sudo vi /etc/s

Jan 25, 2025

CentOS 镜像

CentOS 镜像 简介 CentOS,是基于Red Hat Linux提供的可自由使用源代码的企业级Linux发行版本;是一个稳定,可预测,可管理和可复制的免费企业级计算平台。 下载地址: https://mirrors.aliyun.com/centos/ 相关仓库: CentOS过期源(cen

Dec 24, 2024

[10 倍程序员] ⭐ 51W+ 的终端命令行工具助你成为 10 倍程序员

[10 倍程序员] ⭐51W+ 的终端命令行工具助你成为 10 倍程序员 终端是程序员的必备工具之一,10 倍程序员的终端跟普通程序员有何不同?本文将介绍许多牛逼且实用的开源工具,用上这些工具后你不一定会变成 10 倍程序员,但绝对能够让你感觉自己像个 10 倍程序员。 本文仅对工具做基本介绍,不提

OLDER

单点登录详细设计 V1.0.0

NEWER

解决Java HotSpot™ 64-Bit Server VM warning: Sharing is only supported for boot loader classes because

Recently Updated

  • 【Windows】ApifoxAppAgent开机启动项删除
  • Proxy AI 配置第三方AI模型
  • Windows11 莫名端口占用,而又找不到占用应用的奇怪问题
  • Crack Sublime Text 4.2.0.0 Build 4200
  • 当 SSH 登录 CentOS 7 系统时认证缓慢的解决方案

Trending Tags

Halo 研发 工具 Linux 数据库 Java AI 象棋 Web Docker

Contents

©2025 技术小站. Some rights reserved.

Using the Halo theme Chirpy