【Linux篇<Day19>】——源码编译安装、rsync数据同步


在这里插入图片描述

一份微语报,众览天下事!
【今日要闻】
美国田纳西州发生大规模枪战
至少6人受伤
【今日微语】
人类终其一生都是在和自己较量
直至和解

让我们进入今天的学习吧!
💪Keep  trying💪

在这里插入图片描述

在这里插入图片描述

🍉一、源码编译安装

🍇1.1 为什么需要源码编译安装

  大家应该都已经非常熟悉了利用rpm -ivh 和 yum -y install 来安装软件包了,非常的方便,可以说yum在手,天下我有一点都不为过。但也正因为yum的一步到位,使得我们在安装软件包时,不能主动的选择其功能,所以我们需要源码编译安装

🍇1.2 源码编译安装的优点

  1. 获得软件最新版,及时修复bug
  2. 软件功能可按需选择/定制,有更多的软件可供选择
  3. 源码报适用于各个品平台

🍇1.3 源码编译安装的步骤

  1. 安装开发工具gcc和make,释放源码包到指定目录
  2. tar解包,释放源代码至指定目录
  3. ./configure 进行配置
    注意,此步是 cd 进入到源码包的路径下,运行configure脚本
    运行脚本的作用是检测当前系统是否安装gcc;指定安装位置和功能;生成makefile文件。
    指定安装路径:./configure --prefix=指定路径
  4. make 编译,可生成可执行的二进制程序文件(放在内存中)
  5. make install 安装,将编译好的文复制到安装目录
    注意:前四步并不会产生真正的安装,最后一步才是安装;如果要卸载源码包,直接rm -rf ,不能用yum remove,因为并不是通过正常方式进行的安装。

🍉二、rsync同步

🍇2.1 概述

    如果我们需要将某一个文件一直与另一个文件的内容保持一致,那我们就必须用到rsync同步操作了。rsync,Remote Sync,远程同步,支持本地复制或与其他ssh、rsync主机同步。

🍇2.2 命令用法

  • 格式:rsync [选项…] 源目录 目标目录
  • 常用选项
    -n:测试同步过程,不做实际修改
    --delete:删除目标文件内多余的文档
    -a:归档模式,相当于 -rlptgol这么多选项
    -v:显示归档操作信息
    -z:传输过程中启用压缩/解压(此选项不加默认也是启用的)
    注意:源目录后面的/一定要加上,不然会将源目录当成目标目录的子目录进行同步;-a选项必须存在;–delete选项不能单独使用,否则报错
  • 黄金组合
    rsync -av 源目录 目标目录
    该命令不会改变目标目录里面已经拥有的内容,只会将源目录里面有的但目标目录里没有的进行同步,也就是说,目标目录可以多,但是不能少
    rsync -av --delete 源目录 目标目录
    加了–delete选项后,目标和源就是真正的同步了,目标目录现在不能多也不能少
    在这里插入图片描述这个是没有 /opt后面没有带/,直接把opt当成子目录了
    下面这个是带/的,看看效果
    在这里插入图片描述

🍇2.3 同步与复制的差异

  • 复制:完全拷贝源到目标
  • 同步:增量拷贝,只传输变化过的数据

🍇2.4 rsync实现远程同步

  利用ssh与rsync的结合可实现对远程主机的数据同步

  • 下行:rsync [选项…] user@host:远程目录 本地目录
  • 下行:rsync [选项…] 本地目录 user@host:远程目录

🍇2.5 实现数据的实时同步

  学习了上面的rsync同步后,我们应该也能感受到这个命令的强大。但实际工作中,对于我们自己修改了这个文件,我们心里有数,我们知道这会儿需要进行同步了,但要是其它用户也修改了此文件,我们就不是不知道了吗?所以我们得实时的知道这个文件什么时候被修改了。这里我们采用的是Linux内核的inotify机制。这是一种提供事件响应式的文件系统通知机制。我们需要安装 inotify-tools 这个软件包实现监控,这个软件包也需要通过源码编译安装,需要包资源的可以私我。

  • inotify的用法
    格式:inotifywait [选项...] 目标文件夹
    常用选项:
    -m:持续监控(捕获一个时间后不退出)
    -r:递归监控,包括子目录和文件夹
    -q:减少屏幕输出信息
    -qq:不输出信息
    -e:指定监控的事件类别

写到这我们其实已经实现了监控,一旦有人修改了文件夹,那么我们就可以知道,进行数据同步,但是,这还是不能达到我们的要求,第一,运行这个程序一直占用着终端我们啥也干不了,第二,每次修改还得我们手动去修改,太傻了,所以我们写一个脚本,这个脚本的作用是一旦发现有人修改了这个文件,就立马进行同步,脚本如下
在这里插入图片描述


         👆回到顶部👆

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小猿桥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值