首页
编程随笔
Java笔记
Html/Css/Js
Android
后端笔记
服务器搭建
BUG收集
Java异常
Android异常
在线工具
Json格式化
编码/解码
Epub在线编辑
登录
发布文章
个人文章
退出登录
首页
技术教程
BUG收集
在线工具
资源下载
登录
发布文章
退出登录
搜索
当前位置:
首页
-
博客
- 正文
关闭
Linux自定义文件同步工具xsync
更新时间:2023-06-20 20:32:32
阅读数:532
发布者:落幕
·在配置集群时,往往需要将文件拷贝到各个机器,一来二去就很麻烦;我们可以使用 xsync 工具同时进行多台机器同步数据。 环境准备: ```txt 域名 : ip 主机1 test1:192.168.225.128 主机2 test2:192.168.225.129 主机3 test3:192.168.225.130 ``` ### 1、主机免密登录设置 [http://blog.speechb.com/detail/d770da3f680c4717bdaa593e31f2c645](http://blog.speechb.com/detail/d770da3f680c4717bdaa593e31f2c645 "http://blog.speechb.com/detail/d770da3f680c4717bdaa593e31f2c645") ### 2、xsync 脚本编写 由于 xsync 是对 rsync 的再封装,因此需要先安装 rsync yum install -y rsync 在 /usr/bin 下新建 xsync.sh vim /usr/bin/xsync.sh xsync.sh完整代码如下: ```shell #!/bin/bash #1. 判断参数个数 if [ $# -lt 1 ] then echo Not Enough Arguement! exit; fi #2. 遍历集群所有机器,test1为目标主机域名 for host in test1 test2 test3 do echo ==================== $host ==================== #3. 遍历所有目录,挨个发送 for file in $@ do #4. 判断文件是否存在 if [ -e $file ] then #5. 获取父目录 pdir=$(cd -P $(dirname $file); pwd) #6. 获取当前文件的名称 fname=$(basename $file) ssh $host "mkdir -p $pdir" rsync -av $pdir/$fname $host:$pdir else echo $file does not exists! fi done done ``` ### 3、修改权限 chmod 777 /usr/bin/xsync.sh ### 4、测试 #新建a.txt文件,发送给其他服务器 touch /usr/local/a.txt xsync.sh /usr/local/a.txt