linux安装rsync在各主机之间同步文件

概述

rsync可用于同步本地主机和远程主机的文件,在搭建集群环境时尤为常用。
此处以3台虚拟机作为例子,分别192.168.25.132、192.168.25.133、192.168.25.134

安装rsync

所有主机都要安装,并且服务都要启动

yum install rsync
# 启动服务
systemctl start rsyncd.service
# 设置开机启动
systemctl enable rsyncd.service

rsync命令

rsync -rvl [传输文件或目录Path] [用户]@[远程IP]:[远程存放目录]

举个例子:

cd /usr/local
#创建个测试文件test.txt
touch test.txt
#执行rsync
rsync -rvl ./test.txt root@192.168.25.133:/usr/local
#输入命令后,会弹出远程主机密码,直接输入即可
root@192.168.25.133's password: 
sending incremental file list
test.txt

sent 87 bytes  received 35 bytes  22.18 bytes/sec
total size is 0  speedup is 0.00

切换到192.168.25.133主机,查看文件有传过来,验证通过


在这里插入图片描述

多主机传输

手动执行rsync存在一个问题,如果主机有多台,一个个执行效率很慢,我们可以写个shell脚本,只需要传递目录参数,就可以实现批次传输。

cd /usr/local/bin
touch xsync

xsync脚本如下:

if [ x"$1" = x ]; then 
    echo "no cmd param!"
    exit 1
fi


#相对路径
p=$1

if [ -f "$p" ] 
  then
    fpdir="$(cd "$(dirname "$p")"; pwd)"
  else
    fpdir="$(cd $p; pwd)"

fi

#账号
user='root'

#循环主机
hosts=('192.168.25.133' '192.168.25.134')
for host in ${hosts[@]} 
do
        echo --------------- cluster$host ----------------
        rsync -rvl $p $user@$host:$fpdir
done

保存退出,需要提升权限:

chmod 777 xsync
#执行测试,把/usr/local/elasticsearch-7.6.0目录传到192.168.25.133、192.168.25.134
./xsync ../elasticsearch-7.6.0
#然后分别根据提示输入远程密码即可

查看结果:
在这里插入图片描述

这样说明验证通过,每次使用传递一个目录参数就可以了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

°Fuhb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值