rsync远程同步

rsync是Linux系统下的数据镜像备份工具,可以在本地或远程系统之间同步文件和目录,支持增量备份,速度快,占用资源少,使用简单方便。

rsync特点

• 速度快,占用资源少。
• 可以使用scp、ssh等方式来传输文件也可以通过直接的socket连接。
• 支持拷贝特殊文件如链接,设备文件等
• 可以排除指定文件或目录
• 可以保持原来文件或目录的属性(权限、时间、软硬链接均不变)

安装rsync

  • 安装方式
  • 源码安装
  • yum安装
官网下载地址:https://rsync.samba.org/
  • yum安装
dnf install rsync -y

rsync+inotify-tools实时同步数据_实时同步

同步命令

rsync 选项    本地目录A    本地目录B   #同步整个目录
rsync 选项    本地目录A/    本地目录B   #只同步目录下的数据

常用选项

delete				删除目标目录下多余的文档
-v					显示详细操作信息
-z					传输过程中启用压缩/解压缩
-a					递归同步

本地同步

新建两个文件夹,在其中一个文件夹内复制多个文件后执行同步。

mkdir /lr
mkdir /lr2
rsync -avz /lr/ /lr1    #只同步lr文件夹内的文件到lr1文件夹内

rsync+inotify-tools实时同步数据_Linux_02

修改ping.yml文件的内容,再次执行同步

可以看到,只同步了有修改的文件。

rsync+inotify-tools实时同步数据_Linux_03

远程同步文件

rsync -avz /root/ root@192.168.10.210:/host1

我这里配置了免密认证,所以是不需要输入密码的。

rsync+inotify-tools实时同步数据_rsync_04

rsync+inotify-tools实时同步数据_Linux_05

实时同步数据

  • rsync+inotif-tools

inotify-tools是由Red Hat开发的一款Linux文件系统监控工具,该工具高效率、细粒度、异步地对用户空间文件进行安全、高性能的监控。

inotif-tools下载地址:https://sourceforge.net/projects/inotify-tools/files/inotify-tools/3.13/inotify-tools-3.13.tar.gz
  • 配置同步主机之间免密登录
ssh-keygen
ssh-copy-id root@192.168.10.210

安装inotify-tools

  • 解压源码包
#"z"表示使用gzip进行压缩和解压缩。
#"x"表示从归档文件中提取文件到当前目录。
#"v"表示在提取过程中显示详细信息,即输出过程。
#"f"表示指定要操作的归档文件名。
tar -zxvf inotify-tools-3.13.tar.gz

rsync+inotify-tools实时同步数据_rsync_06

  • 安装依赖
dnf install  gcc* -y
  • 编译安装
./configure --prefix=/usr/local/inotify && make && make install

rsync+inotify-tools实时同步数据_Linux_07

  • 为主程序创建软链接
ln -s /usr/local/inotify/bin/inotifywait /usr/sbin/
ln -s /usr/local/inotify/bin/inotifywatch /usr/sbin/

rsync+inotify-tools实时同步数据_文件同步_08

  • 常用选项
-m		持续监控
-r		递归监控
-q		减少屏幕输出信息
-e		指定监控的属性(modify(修改)、move(移动,改名)、create(创建)、delete(删除)、attrib(权限))
  • 编写实时监控脚本
#!/bin/bash
while true
do
        inotifywait -rq -e  modify,create,delete /lr/
        rsync -avz --delete /lr/ root@192.168.10.210:/host1
done

当被监控的目录内新增、修改或删除文件时就会实时同步到远程主机目录

向被监控的文件夹内复制新文件

rsync+inotify-tools实时同步数据_Linux_09

此时就会触发监控,实时同步到远程主机目录

rsync+inotify-tools实时同步数据_实时同步_10

登录远程主机查看目录文件

rsync+inotify-tools实时同步数据_文件同步_11