当前位置: 首页 > news >正文

文件同步2

请大家思考如何使用scp命令去解决这个问题。

有两种思路:

第一种:三个文件一个一个去拷贝。缺点是操作麻烦,要逐一操作。

第二种:重新把A上的conf拷贝到B上。缺点是会重复拷贝文件1,2,3,4。

所以问题来了:有没有更好的方式呢? 有,就是我们要学习的rsync!

(四)rsync远程同步

rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。

rsync和scp区别是:rsync只对差异文件做更新,而scp是把所有文件都复制过去,所以它的效果更高一些。

rsync    -av       $pdir/$fname             $user@$host:$pdir/$fname

语法说明:

(1)-a:归档拷贝,尽可能让拷贝的文件之间保持一致。

(2)-v:显示拷贝过程。

(3)$pdir/$fname: 要拷贝的文件路径/名称

(4)$user@host:$pdir/$fname: 目的地用户@主机:目的地路径/名称

2. 案例实操

下面我们去操作一下。

第一步:在两台机器上准备文件。

在hadoop100的/opt/conf/ 新建1.txt, 2.txt, 3.txt, 4.txt

做一次同步。

[root@hadoop100 ]$c

它会在hadoop101上创建conf目录。

第二步:在hadoop100中,添加新文件,5.txt, 6.txt, 7.txt

第三步:使用命令把新添加的文件同步到hadoop101中。

命令如下:

[root@hadoop100 ]$ rsync -av /opt/conf/ root@hadoop101:/opt/conf/

xsync脚本集群之间的同步

我们提出一个更加高级的需求: 现在有A,B,C,D,E五台机器,我们在A上新增加了文件,那如何去同步到B,C,D,E上相同的目录下呢?

2.步骤

(1)在/root/bin目录下创建xsync文件。在这个

(2)在该文件中编写如下代码。这个部分的代码不需要会写,能看懂,了解即可。

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
thenecho Not Enough Arguement!exit;
fi
#2. 遍历集群所有机器
for host in hadoop100 hadoop101 hadoop102
doecho ====================  $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:$pdirelseecho $file does not exists!fidone
done

(3)修改执行权限。此时,我们去查看文件,可以看到它的颜色是灰色的,不具备执行权限(如下左图)。

接下来要通过命令: chmod +x xsync(或者是chmod 777 xsync)

重新查看它的颜色,它现在已经变成执行的脚本了(如上右图)。

(4)测试使用。把这个脚本同步到其他的机器中。

[root@hadoop100 ~]$ xsync /root/bin/

集群同步实操

有了上面封装的xsync这个工具之后,我们就可以很方便地把hadoop100上的环境变量配置和安装的两个软件都同步到hadoop101和hadoop102上去。

对应的命令是:

 xsync /etc/profile.d/my_env.shxsync /etc/module

相关文章:

  • 用 VS Code / PyCharm 编写你的第一个 Python 程序
  • aardio - 虚表 —— vlistEx.listbar2 多层菜单演示
  • 【笔记】C++操作mysql及相关配置
  • 【MapReduce入门】深度解析MapReduce:定义、核心特点、优缺点及适用场景
  • conda 输出指定python环境的库 输出为 yaml文件
  • android抓包踩坑记录
  • SpringSecurity当中的CSRF防范详解
  • 香橙派zero3 安卓TV12,更换桌面launcher,开机自启动kodi
  • 资产管理平台—chemex
  • C#进阶(1) ArrayList
  • TypeScript 知识框架
  • CSP认证准备第三天-差分及第36次CCF认证(BFS)
  • ExoPlayer 如何实现音画同步
  • CSS3 选择器完全指南:从基础到高级的元素定位技术
  • 2025年项目管理软件革命:AI与空间计算如何重塑企业协作格局
  • 国产化Word处理控件Spire.Doc教程:如何使用 C# 从 Word 中提取图片
  • 鸿蒙5.0项目开发——鸿蒙天气项目的实现(介绍)
  • 机器学习之AutoML:机器学习的自动化革命及其应用场景分析
  • CSS结构性伪类、UI伪类与动态伪类全解析:从文档结构到交互状态的精准选择
  • ssl 中 key 和pem 和crt是什么关系
  • 中国巴西民间推动建立经第三方验证的“森林友好型”牛肉供应链
  • 马上评丨岂能为流量拿自己的生命开玩笑
  • 体坛联播|安切洛蒂执掌巴西男足,字母哥尝试离开雄鹿
  • OpenAI与微软正谈判修改合作条款,以推进未来IPO
  • 当我们提起拉动消费时,应该拉动什么消费?
  • 上海发布首份直播电商行业自律公约,禁止虚假宣传、商业诋毁