当前位置:首页 > 有云笔记 > SERVICES > 正文内容

linux学习之 ---源码编译安装 、rsync同步操作 、inotify实时同步

小白3年前 (2021-12-21)SERVICES248990

linux学习之 ---源码编译安装 、rsync同步操作 、inotify实时同步

####################################################

关闭所有虚拟机的SELinux

[root@svr7 ~]# setenforce  0      #修改当前运行模式
[root@svr7 ~]# getenforce         #查看当前运行模式
Permissive
[root@svr7 ~]# vim   /etc/selinux/config    #永久修改
SELINUX=permissive

设置所有虚拟机防火墙

[root@svr7 ~]# systemctl   stop   firewalld
[root@svr7 ~]# systemctl   disable   firewalld

将真机的tools.tar.gz 传递到虚拟机A的/root目录下

真机为Linux

]# ls   /linux-soft/
]# ls   /linux-soft/1
]# scp  /linux-soft/1/tools.tar.gz  root@192.168.4.7:/root/



源码编译安装

RPM软件包:rpm -ivh 或者 yum -y install 

源码包----开发工具gcc与make----》可以执行的程序-----》运行安装

                       

•主要优点

–获得软件的最新版,及时修复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:传输过程中启用压缩/解压


本地同步

[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/aa.txt
[root@svr7 ~]# ls  /todir/
[root@svr7 ~]# rsync  -av  --delete  /mydir/   /todir/
[root@svr7 ~]# ls   /todir/
[root@svr7 ~]# ls   /mydir/

 


远程同步

• 与远程的 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:

]# ls    /opt/

 


 三、实时数据同步

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

实现ssh无密码验证(公钥  与  私钥)

虚拟机A

1.生成公钥与私钥

[root@svr7 ~]# ssh-keygen         #一路回车
[root@svr7 ~]# ls    /root/.ssh/

id_rsa(私钥)   id_rsa.pub(公钥)    known_hosts(记录曾经远程管理过的机器)

2.将虚拟机A将公钥传递给虚拟机B

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


监控目录内容变化工具

将真机的tools.tar.gz传递数据到虚拟机A

[root@svr7 ~]# ls       /root
tools.tar.gz                         下载
公共                                      音乐
[root@svr7 ~]#

源码编译安装步骤:

步骤一:安装开发工具

]# yum   -y   install   make
]# yum   -y   install   gcc
]# rpm   -q   gcc
]# rpm   -q   make

步骤二:进行tar解包                            

]# tar  -xf  /root/tools.tar.gz  -C   /usr/local/
]# ls   /usr/local/
]# ls   /usr/local/tools/
 
]# tar -xf   /usr/local/tools/inotify-tools-3.13.tar.gz   -C /usr/local/
]# ls   /usr/local/

步骤三:运行configure脚本进行配置

作用1:检测系统是否安装gcc  

作用2:可以指定安装位置及功能

]# cd    /usr/local/inotify-tools-3.13/
]# ./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.

步骤四:make进行编译,产生可以执行的程序

]# cd    /usr/local/inotify-tools-3.13/
]# make

步骤五:make   install进行安装

]# cd    /usr/local/inotify-tools-3.13/
]# make    install
]# ls  /opt/
]# ls  /opt/myrpm/
]# ls  /opt/myrpm/bin/


• 基本用法

 inotifywait  [选项]  目标文件夹

• 常用命令选项

 -m,持续监控(捕获一个事件后不退出)

 -r,递归监控、包括子目录及文件

 -q,减少屏幕输出信息

 -e,指定监视的 modify、move、create、delete、attrib 等事件类别       


inotifywait  

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


书写shell脚本(了解)      

脚本:可以运行一个文件,实现某种功能

中文:新建用户zhangsan        shell: useradd   zhangsan

 

重复性:循环解决

死循环:while循环 

     while  条件

     do

          重复执行的事情

     done

[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   a+x    /etc/rsync.sh    #赋予执行权限
[root@svr7 /]# /etc/rsync.sh   &     #运行脚本程序


[root@svr7 /]# jobs  -l
[1]+ 17707 运行中               /etc/rsync.sh &
[root@svr7 /]# kill  17707      #停止脚本


本内容收集整理自互联网仅供技术交流之用,请勿用于任何侵犯他人权益的用途!本人不为此承担任何责任!本人与本文章所涉及的所有工具均无利益相关性,本文章为个人笔记性质不会从中获取利益,如存在侵权情况,请联系我,将会进行删除,谢谢

linux学习之 ---源码编译安装 、rsync同步操作 、inotify实时同步  您阅读本篇文章共花了: 

分享到:

    扫描二维码推送至手机访问。

    版权声明:本文由有云转晴发布,如需转载请注明出处。

    本文链接:https://yyzq.cf/?id=49

    分享给朋友:

    发表评论

    访客

    ◎欢迎参与讨论,请在这里发表您的看法和观点。