文章目录
🍉一、源码编译安装
🍇1.1 为什么需要源码编译安装
大家应该都已经非常熟悉了利用rpm -ivh 和 yum -y install 来安装软件包了,非常的方便,可以说yum在手,天下我有一点都不为过。但也正因为yum的一步到位,使得我们在安装软件包时,不能主动的选择其功能,所以我们需要源码编译安装
🍇1.2 源码编译安装的优点
- 获得软件最新版,及时修复bug
- 软件功能可按需选择/定制,有更多的软件可供选择
- 源码报适用于各个品平台
🍇1.3 源码编译安装的步骤
安装开发工具gcc和make
,释放源码包到指定目录tar解包
,释放源代码至指定目录./configure 进行配置
注意,此步是 cd 进入到源码包的路径下,运行configure脚本
运行脚本的作用是检测当前系统是否安装gcc;指定安装位置和功能;生成makefile文件。
指定安装路径:./configure --prefix=指定路径make 编译
,可生成可执行的二进制程序文件(放在内存中)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
:指定监控的事件类别
写到这我们其实已经实现了监控,一旦有人修改了文件夹,那么我们就可以知道,进行数据同步,但是,这还是不能达到我们的要求,第一,运行这个程序一直占用着终端我们啥也干不了,第二,每次修改还得我们手动去修改,太傻了,所以我们写一个脚本,这个脚本的作用是一旦发现有人修改了这个文件,就立马进行同步,脚本如下