xsync同步脚本的使用

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

大家好,又见面了,我是你们的朋友全栈君。

xsync同步脚本的使用

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.101 zkos1
10.8.10.102 zkos2
10.8.10.103 zkos3
10.8.10.104 zkos4
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机器自身公钥到目标机器

方法一

  1. 在目标机器的用户主目录创建.ssh目录

mkdir -p ~/.ssh

  1. 在本地执行远程拷贝命令

cd /root/.ssh
scp id_rsa.pub root@kafkaos1:/root/.ssh/authorized_keys

方法二

  1. 在本地先将id_rsa_pub 一份名为 authorized_keys

cp id_rsa.pub authorized_keys

  1. 使用rsync 命令同步到对方目录

rsync authorized_keys root@kafkaos1:/root/.ssh/

备注:该方法需要本地暂时没有authorized_keys,有的话先改名也可以,并且本地机器安装有rsync脚本。操作完记得删除本地的authorized_keys

方式三

ssh-copy-id -i ~/.ssh/id_rsa.pub root@server:/root/.ssh/

3.3 远程登录测试

输入命令

ssh root@kafkaos1

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

4.xsync脚本使用

4.1 安装rsync脚本

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

yum install -y rsync

4.2 添加xsync脚本

在用户主目录的bin目录下添加脚本,脚本内容如下

#!/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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136913.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月2日 下午9:00
下一篇 2022年6月2日 下午9:00


相关推荐

  • Java面试之集合[通俗易懂]

    Java面试之集合[通俗易懂]Java面试之集合

    2022年4月22日
    39
  • java判断文件是否为图片格式_java读取图片流

    java判断文件是否为图片格式_java读取图片流前言Java检查文件类型有几种方法:1.判断文件后缀名Stringextension=&amp;amp;quot;&amp;amp;quot;;inti=fileName.lastIndexOf(‘.’);if(i&amp;amp;amp;gt;0){extension=fileName.substring(i+1);}//…if(&amp;amp;quot;jpg&amp;amp;quot;.equal

    2025年9月14日
    11
  • Android so文件浅析「建议收藏」

    Android so文件浅析「建议收藏」一.简述Android中的so文件是动态链接库,是二进制文件,即ELF文件。多用于NDK开发中。二.基础知识三.so文件格式解析so文件即ELF文件,是一个二进制文件,我们可以用UltraEdit打开查看。如下:上面有一处很明显看到,在so文件解析出来的头文件字段是ELF,也印证.so是一个ELF格式的问题。ELF文件…

    2026年1月24日
    4
  • Pycharm远程开发操作

    Pycharm远程开发操作Pycharm 远程开发操作可以在 Windows 中使用 Pycharm 编写代码 而代码的调试运行可以使用远程服务器中的 python 解释器 在本地创建好工程项目 或从 git 上 clone 下代码 后 用 Pycharm 打开 1 打开 Tools 设置 Deployment 2 选择 SFTP3 设置服务器名字 4 设置服务器信息 1 测试服务器连接是否可用 2 设置上传代码的目录映射 3 打开设置 设置远程 Python 解释器 4 选择已存在的服务器设置 5 选择 Create 复制服务器设置到解

    2026年3月27日
    2
  • LabVIEW图像灰度分析与变换(基础篇—4)

    LabVIEW图像灰度分析与变换(基础篇—4)图像分析是将图像的像素灰度统计和测量技术结合,使机器可以理解图像内容,并提取特征信息以实现智能检测目的的学科。图像分析更侧重于对图像内容的分析、解释和识别。

    2022年6月16日
    60
  • 基于Web的仓库管理系统的设计与实现

    基于Web的仓库管理系统的设计与实现摘 要仓库物品的管理是与我们的日常生活息息相关的一个重大问题。随着我国经济飞速的发展,改革开放的不断深入,企业要想在激烈的市场竞争中立于不败之地,要想继续的发展与生存,没有现代化的管理方式与方法是万万不行的,仓库管理的全面信息化、自动化则是在其中占有极其重要的地位。仓库管理信息系统则是在此需求背景下开始研制并开发的。在此篇文章中严格按照软件工程思想,设计并实现了一个仓库信息管理系统。介绍了系统从…

    2025年9月4日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号