步骤3:./configure 配置,指定安装目录/功能模块等选项
步骤4:make 编译,生成可执行的二进制程序文件
步骤5:make install 安装,将编译好的文件复制到安装目录
真机tools.tar.gz 传递数据到虚拟机
真机为Linux:
]# ls /linux-soft/s1
]# scp /linux-soft/s1/tools.tar.gz root@192.168.88.240:/root
真机为windows:windterm进行上传tools.tar.gz
虚拟机A
1.安装开发工具
[root@server ~]# yum -y install gcc make
[root@server ~]# rpm -q gcc
[root@server ~]# rpm -q make
[root@server ~]#
2.进行解压缩
[root@server ~]# tar -xf /root/tools.tar.gz -C /usr/local
[root@server ~]# ls /usr/local/tools
inotify-tools-3.13.tar.gz
3.进行tar解包
[root@server ~]# tar -xf /usr/local/tools/inotify-tools-3.13.tar.gz -C /usr/local/
[root@server ~]# ls /usr/local/
[root@server ~]# cd /usr/local/inotify-tools-3.13/
[root@server ~]# ls
4.运行configure脚本
作用1:检测当前系统是否安装gcc
作用2:指定安装位置与功能
作用3:生成Makefile文件(制作程序的大纲,做菜的菜谱)
./configure --prefix=/opt/myrpm #指定安装位置,
./相对路径
[root@server ~]# cd /usr/local/inotify-tools-3.13/
[root@server ~]# ./configure --help #查看帮助信息,大概浏览一下
[root@server ~]# ./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@server ~]# cd /usr/local/inotify-tools-3.13/
[root@server inotify-tools-3.13]# make
如果重新出现错误,重头再来
6.进行make install安装
生成以下文件为成功安装
[root@server ~]# cd /usr/local/inotify-tools-3.13/
[root@server inotify-tools-3.13]# make install
[root@server inotify-tools-3.13]# ls /opt/
[root@server inotify-tools-3.13]# ls /opt/myrpm/
[root@server inotify-tools-3.13]# ls /opt/myrpm/bin/
数据同步
命令用法
rsync [选项...] 源目录 目标目录 只传输变化过的数据
运行一次命令,同步一次
文件级别 eg:1.txt文件发生变化,整个文件传输
• rsync操作选项
-n:测试同步过程,不做实际修改
--delete:删除目标文件夹内多余的文档
-a:归档模式,相当于-rlptgoD
-v:显示详细操作信息
-X:保持acl策略不变
-z :自动压缩或解压(省略不写)
常用命令: rsync -aavXSH --delete
rsync 是一个用于文件同步和传输的强大工具,
而 rsync -aavXSH --delete 则是一条命令,包含了多个选项,
用于执行高级的文件同步操作。下面是这个命令中各个选项的含义:
● -a: 表示归档模式,保留文件属性,递归同步子目录,保持文件权限、所有者信息、时间戳等。
● -a: 另一个 -a 选项,表示递归同步子目录。
● -v: 显示详细输出,使 rsync 在执行时显示更多信息。
● -X: 保持扩展属性。
● -S: 保持稀疏文件。
● -H: 保持硬链接文件。
● --delete: 在目标目录中删除源目录没有的文件,实现镜像同步。
综合起来,rsync -aavXSH --delete 命令的作用是在执行文件同步时,
保留所有文件属性,包括权限、所有者信息、时间戳等;同时保持扩展属性、稀疏文件、硬链接文件;
并且在目标目录中删除源目录没有的文件,实现目录之间的镜像同步。
这条命令适用于需要保持两个目录内容同步的场景,确保目标目录与源目录保持一致。
但请注意,在使用 rsync 进行文件同步时,务必谨慎操作,以免意外删除重要文件。
建议在执行此类操作前先做好备份
-r:递归,包括目录/子目录及所有文件
-l:保留符号链接文件
-p,-t:保留文件的权限,时间标记
-o,-g:保留文件的属主/属组标记
-D:保留设备文件及其他特殊文件
5 本地同步
源文件路径,没有/ 表示同步目录本身
源文件路径,有/表示同步路径目录内的内容
rsync -avX --delete /mydir/
[root@server ~]# mkdir /mydir /todir
[root@server ~]# echo haha > /mydir/h.txt
[root@server ~]# rsync -avX --delete /mydir/ /todir #同步目录的内容
[root@server ~]# ls /mydir/
[root@server ~]# ls /todir/
[root@server ~]# touch /todir/a.txt
[root@server ~]# ls /todir/
[root@server ~]# rsync -avX --delete /mydir/ /todir
[root@server ~]# ls /todir/
[root@server ~]# ls /mydir/
6 远程同步(rsync+ssh)
• 与远程的 SSH目录保持同步
下行:rsync [...] user@host:远程目录 本地目录
上行:rsync [...] 本地目录 user@host:远程目录
虚拟机A的/mydir目录的内容与虚拟机B的/mnt进行同步
同步的目录没有会进行创建目录
虚拟机A:
[root@server ~]# rsync -avX --delete /mydir/ root@192.168.88.2:/mnt
……..connecting (yes/no)? yes
root@192.168.88.2's password: #输入密码
虚拟机B:
[root@server ~]# ls /mnt
7 实时数据同步
虚拟机A的/mydir/目录的内容与虚拟机B的/mnt进行同步
实现ssh无密码验证(公钥与私钥)
虚拟机A
1.虚拟机A生成公钥与私钥
[root@server ~]# ssh-keygen #一路回车
[root@server ~]# ls /root/.ssh/
id_rsa(私钥) id_rsa.pub(公钥) known_hosts(记录曾经远程管理过的机器)
2.虚拟机A将公钥传递给虚拟机B
[root@server ~]# ssh-copy-id root@192.168.88.2
[root@server ~]# rsync -avX --delete /mydir/ root@192.168.88.2:/mnt
监控目录内容变化工具
• 基本用法
inotifywait [选项] 目标文件夹
• 常用命令选项
-m,持续监控(捕获一个事件后不退出)
-r,递归监控、包括子目录及文件
-q,减少屏幕输出信息 -qq:不要屏幕输出
-e,指定监视的 modify、move、create、delete、attrib 等事件类别
inotifywait 监控目录内容变化
rsync -avX --delete /mydir/ root@192.168.88.2:/mnt