基于rsync写脚本实现多节点多服务器文件一键同步的方法

2023-10-17 1504阅读

温馨提示:这篇文章已超过523天没有更新,请注意相关的内容是否还可用!

集群脚本分发 在处理 Linux 集群的时候,常常会涉及到集群内文件的同步。文件数量多,且需要频繁同步的情况下,运用 一些 Linux 命令能很大程度上的帮助我们节省时间和精力。修改 test 文件目录权限归属为 ndmiao:ndmiao. 配置 /etc/hosts ,因为脚本需要通过主机名来获取节点的地址, 文件中追加节点地址以及对应的主机名。到此这篇关于利用rsync写脚本实现多节点多服务器文件一键同步的文章就介绍到这了,更多相关rsync多服务器文件同步内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!《基于rsync写脚本实现多节点多服务器文件一键同步的方法》来自互联网同行内容,若有侵权,请联系我们删除!

集群脚本分发

在处理 Linux 集群的时候,常常会涉及到集群内文件的同步。文件数量多,且需要频繁同步的情况下,运用 一些 Linux 命令能很大程度上的帮助我们节省时间和精力。

基于rsync写脚本实现多节点多服务器文件一键同步的方法
(图片来源网络,侵删)

本文将介绍 scp 和 rsync 两个命令

scp

scp:命令

-r:递归

p d i r / pdir/ pdir/fname:要拷贝的文件路径/名称

u s e r @ user@ user@host: p d i r / pdir/ pdir/fname:目的地用户@主机:目的地路径/名称

在 ndmiao 用户目录下,创建一个 test 文件夹, 并创建一些文件。修改 test 文件目录权限归属为 ndmiao:ndmiao

在 centos01 上将 test 文件目录拷贝到 centos02 上,回车后会提示是否确认连接,确认连接后输入 centos02 的密码即可

在 centos02 上将 centos01 中的目录拷贝到 centos02

在 centos02 上将 centos01 上的目录拷贝到 centos03

rsync

rsync:命令

-a:归档拷贝

-v:显示复制过程

p d i r / pdir/ pdir/fname:要拷贝的文件路径/名称

u s e r @ user@ user@host: p d i r / pdir/ pdir/fname:目的地用户@主机:目的地路径/名称

同步 centos01 目录到 centos02

xsync

虽然上面两个命令已经极大的方便了文件的同步,但是当集群中存在着几十几百甚至上千服务器的时候,就又显的麻烦了,这时候就可以编写一个shell脚本来实现集群文件的同步。

能够一条命令同步目录至集群所有的节点

配置 /etc/hosts ,因为脚本需要通过主机名来获取节点的地址, 文件中追加节点地址以及对应的主机名。配置好之后,需要重启。

192.168.10.101 centos01

192.168.10.102 centos02

192.168.10.102 centos03

因为需要脚本在任何路径下都能够使用,所以需要将脚本放置在声明了全局环境变量的路径下面。

于是选择将 xsync 文件放置在 /home/ndmiao/bin 目录下

修改脚本 xsync 的权限

测试脚本

运行后会发现所有节点的 /home/ndmiao/bin 下都会出现 xsync 脚本

如果想要以 root 的身份来运行

SSH 无密码登录

虽然已经配置好了xsync,但是每同步一个节点就要输入一次节点的密码,SSH 无密码登录就可以去除这种重复的操作

假设有两台服务器,一台为 centos01,一台为 centos02,使用 ssh-key-gen 在 centos01 的 /home/ndmiao/.ssh 会生成私钥 id_rsa 和 公钥 id_rsa.pub。将 centos01 的公钥拷贝到 centos02 的 authorized_keys 后,当 centos01 通过 ssh 访问 centos02(数据用私钥加密),centos02 会授权 authorized_keys 中的 centos01 公钥来解密私钥,然后用 centos01 公钥加密数据返还给 centos01,centos01 接受到数据后用私钥来解密数据。

生成公钥和私钥

将公钥拷贝到需要免密登录的目标节点,因为 ssh 访问自身节点也需要密码,所以自身也需要拷贝

这时候就可以通过 centos01 来 ssh 免密访问三台节点了,运行 xsync 也不再需要输入密码。如果想要其它节点也能无密码访问其它的节点,也需要同样的配置过程。因为 Linux 不同用户是隔离的,所以其它用户想要无密码访问其它节点,也需要同样操作配置,包括 root 用户。

到此这篇关于利用rsync写脚本实现多节点多服务器文件一键同步的文章就介绍到这了,更多相关rsync多服务器文件同步内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

原文链接:www.jb51.net/article/234391.htm

本文从https://www.cdnb.net/bbs/archives/7645转载,原作者保留一切权利,若侵权请联系删除。

《基于rsync写脚本实现多节点多服务器文件一键同步的方法》来自互联网同行内容,若有侵权,请联系我们删除!

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]