源码编译安装、rsync数据同步

源码编译安装、rsync数据同步,第1张

一、源码编译安装

**主要优点
–获得软件的最新版,及时修复bug
–软件功能可按需选择/定制,有更多软件可供选择
–源码包适用各种平台

步骤1:安装开发工具gcc与make,释放源代码至指定目录
步骤2:tar解包,释放源代码至指定目录
步骤3:./configure 配置,指定安装目录/功能模块等选项
步骤4:make 编译,生成可执行的二进制程序文件
步骤5:make install 安装,将编译好的文件复制到安装目录**

1、安装开发工具
[root@svr7 ~]# yum  -y  install  gcc  make
[root@svr7 ~]# rpm -q gcc
gcc-4.8.5-28.el7.x86_64
[root@svr7 ~]# rpm -q make
make-3.82-23.el7.x86_64
[root@svr7 ~]# 
2、进行解压缩
[root@svr7 ~]# tar  -xf  /root/tools.tar.gz  -C  /
[root@svr7 ~]# ls /tools/
inotify-tools-3.13.tar.gz other
3、进行tar解包
[root@svr7 ~]# tar -xf /tools/inotify-tools-3.13.tar.gz -C /usr/local/
[root@svr7 ~]# ls     /usr/local/
[root@svr7 ~]# cd   /usr/local/inotify-tools-3.13/
[root@svr7 inotify-tools-3.13]# ls
4、运行configure脚本

作用1:检测当前系统是否安装gcc
作用2:指定安装位置与功能

]# cd  /usr/local/inotify-tools-3.13/
]# ./configure --help
]# ./configure --prefix=/opt/myrpm #指定安装位置,此步骤不产生相应的目录

常见的报错信息:gcc开发工具没有安装

checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
5、进行make编译,变成可以执行的程序(放在内存中)
[root@svr7 ~]# cd   /usr/local/inotify-tools-3.13/
[root@svr7 inotify-tools-3.13]# make
6、进行make install安装
[root@svr7 ~]# cd   /usr/local/inotify-tools-3.13/
[root@svr7 inotify-tools-3.13]# make install 
[root@svr7 inotify-tools-3.13]# ls /opt/
[root@svr7 inotify-tools-3.13]# ls /opt/myrpm/
bin include lib share
[root@svr7 inotify-tools-3.13]# ls /opt/myrpm/bin/
inotifywait inotifywatch
[root@svr7 inotify-tools-3.13]# 
二、数据同步

命令用法
rsync [选项…] 源目录 目标目录
同步与复制的差异
复制:完全拷贝源到目标
同步:增量拷贝,只传输变化过的数据

rsync *** 作选项
-n:测试同步过程,不做实际修改
–delete:删除目标文件夹内多余的文档
-a:归档模式,相当于-rlptgoD
-v:显示详细 *** 作信息
-z:传输过程中启用压缩/解压

1、本地同步
[root@svr7 ~]# mkdir /mydir   /todir
[root@svr7 ~]# cp /etc/passwd    /mydir 
[root@svr7 ~]# touch   /mydir/1.txt
[root@svr7 ~]# ls /mydir
[root@svr7 ~]# rsync -av   /mydir    /todir     #同步目录本身
[root@svr7 ~]# ls   /todir

[root@svr7 ~]# rsync -av   /mydir/    /todir    #同步目录内容
[root@svr7 ~]# ls   /todir
[root@svr7 ~]# touch   /mydir/2.txt
[root@svr7 ~]# rsync -av   /mydir/    /todir    #同步目录内容
[root@svr7 ~]# ls   /todir
[root@svr7 ~]# echo  123 >  /mydir/1.txt
[root@svr7 ~]# rsync -av   /mydir/    /todir    #同步目录内容
[root@svr7 ~]# ls   /todir



[root@svr7 ~]# rsync  -av  --delete   /mydir/   /todir/
[root@svr7 ~]# ls   /mydir/
[root@svr7 ~]# ls   /todir/         

[root@svr7 ~]# touch   /todir/a.txt
[root@svr7 ~]# ls  /todir/
[root@svr7 ~]# rsync  -av  --delete  /mydir/   /todir/
[root@svr7 ~]# ls   /todir/
[root@svr7 ~]# ls   /mydir/
2、远程同步

与远程的 SSH目录保持同步
下行:rsync […] user@host:远程目录 本地目录
上行:rsync […] 本地目录 user@host:远程目录

虚拟机A的/mydir目录的内容与虚拟机B的/opt进行同步

虚拟机A:

]# rsync  -av  --delete    /mydir/    root@192.168.4.207:/opt
……..connecting (yes/no)? yes
root@192.168.4.207's password:         #输入密码

虚拟机B:

[root@pc207 ~]# ls /opt/
[root@pc207 ~]# vim /etc/ssh/sshd_config
UseDNS   no     #禁用DNS解析
[root@pc207 ~]# systemctl restart sshd
3、实时数据同步

虚拟机A的/mydir/目录的内容与虚拟机B的/opt进行同步

1、实现ssh无密码验证(公钥与私钥)
虚拟机A
生成公钥与私钥

[root@svr7 ~]# ssh-keygen         #一路回车
[root@svr7 ~]# ls    /root/.ssh/
id_rsa(私钥)   id_rsa.pub(公钥)    known_hosts(记录曾经远程管理过的机器)

将虚拟机A的公钥传递给虚拟机B

]# ssh-copy-id     root@192.168.4.207
]# rsync  -av  --delete   /mydir/    root@192.168.4.207:/opt

•基本用法
inotifywait [选项] 目标文件夹
•常用命令选项
-m,持续监控(捕获一个事件后不退出)
-r,递归监控、包括子目录及文件
-q,减少屏幕输出信息
-e,指定监视的 modify、move、create、delete、attrib 等事件类别

inotifywait
rsync -av --delete /mydir/ root@192.168.4.207:/opt

4、脚本
[root@svr7 /]# vim   /etc/rsync.sh
while   /opt/myrpm/bin/inotifywait    -rqq    /mydir/
do
rsync -a  --delete   /mydir/    root@192.168.4.207:/opt
done
[root@svr7 /]# chmod   +x    /etc/rsync.sh  #赋予执行权限
[root@svr7 /]# /etc/rsync.sh   &     #放入后台运行脚本程序
[root@svr7 /]# jobs  -l                 #查看后台运行的进程
[1]+ 17707 运行中               /etc/rsync.sh &


[root@svr7 /]# kill  17707      #停止脚本

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/927736.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-17
下一篇2022-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存