rsync服务及 inotfy实时同步

目录

一、概念

二、特性

三、应用场景

四、rsyns的数据同步方式

五、rsync的传输模式

一、本地传输

二、远程传输

三、守护进程

六、配置环境

一、首先配置yum源

 二、关闭防火墙、图形化、挂载、设置宽容模式

 三、设置IP

 四、重新启动并安装httpd

五、安装rsync

六、搭建服务

 七、配置文件环境

 八、创建用户 -s指定不能登陆操作系统

九、创建一个同步的目录并更改一下属主和属组

 ​编辑

 十、创建一个密码文件并赋予600权限

十一、配置客户端  与服务器配置环境一致

十二、客户端创建文件为user.txt

十三、修改文件内容实现同步

 十四、inotfy实时同步

十五、验证

十六、脚本 

十七、脚本监听验证


一、概念

rsync是一个用于文件同步和备份的工具,rsync是linux 下一个远程数据同步工具,它可以在本地或远程系统之间有效地传输和更新文件。它的主要特点是只传输发生变化的部分,以最小化传输量和时间。

rsync可以在不同的主机之间同步文件和目录,甚至在本地文件系统中进行同步。它使用一种差异算法,称为rsync算法,来确定源文件和目标文件之间的差异,然后只传输差异部分。

当首次运行rsync时,它会复制源文件到目标位置,之后的同步操作只传输已更改的部分。rsync还能够在传输过程中压缩数据,从而进一步减小传输的大小。

rsync支持许多高级功能,如文件权限、所有权和时间戳的保留,以及备份和恢复硬链接、符号链接和设备文件的能力。它还可以通过SSH等安全协议进行远程同步。

总之,rsync是一个强大而灵活的工具,可用于快速、高效地同步和备份文件,无论是在本地还是远程系统之间。

他可通过LAN/WAN快速同步多台主机间的文件和目录,并适当利用rsync 算法减少数据的传输
会对比两个文件的不同部分,传输差异部分,因此传输速度相当快。
rsync可拷贝、显示目录属性,以及拷贝文件,并选择性的压缩及递归拷贝。

二、特性

rsync具有多种特性,使其成为一个强大而受欢迎的文件同步和备份工具。以下是rsync的一些主要特性:

  1. 高效的差异传输:rsync使用一种差异算法来识别源文件和目标文件之间的差异,并只传输发生更改的部分。这种差异传输的方法大大减少了传输的数据量和时间,尤其适用于大型文件和大数据量的同步。

  2. 压缩传输:rsync能够在传输过程中压缩数据,从而减少传输的大小。这对于通过低带宽连接进行远程同步特别有用。

  3. 支持本地和远程同步:rsync可以在本地文件系统上同步文件和目录,也可以在不同的主机之间进行远程同步。它支持使用本地路径、SSH协议或其他远程访问方式进行同步。

  4. 完整性检查:rsync使用校验和(checksum)算法来确保传输的文件在源和目标之间是完整的,从而避免数据损坏或丢失。

  5. 保留文件属性:rsync能够保留源文件的各种属性,包括文件权限、所有权、时间戳等。这对于确保同步后的文件与源文件保持一致非常重要。

  6. 部分文件更新:如果同步过程中断,rsync能够恢复并从中断的地方继续同步,而不需要重新传输整个文件。

  7. 多种同步模式:rsync提供了多种同步模式,如仅复制新添加的文件、删除目标中不存在的文件、保持两边同步等。这使得rsync非常灵活,可根据需求进行定制化配置。

  8. 模拟模式:rsync具有模拟模式,可以预览同步操作的结果,而不实际执行同步。这对于调试和验证同步操作非常有用。

总的来说,rsync具有高效、灵活且可靠的特性,使其成为一个流行的文件同步和备份工具。

三、应用场景

rsync在许多不同的应用场景中都非常有用,以下列举了一些常见的应用场景:

  1. 文件备份和同步:rsync最常见的用途是备份和同步文件或目录。它可以确保源和目标之间的文件保持一致,并在增量更新时只传输更改的部分。这对于定期备份重要数据、文件同步到远程服务器或创建文件版本控制非常有用。

  2. 远程服务器同步:rsync可以通过SSH协议实现安全的远程文件同步。这在需要将文件从本地计算机同步到远程服务器(例如网站文件同步)或在多台服务器之间同步文件时非常有用。

  3. 分发和复制大型文件:rsync的差异传输和压缩功能使其在需要分发或复制大型文件(如软件更新、媒体文件等)到多个目标位置时非常高效。它只传输更改的部分,并通过压缩减小传输的数据量。

  4. 增量备份:rsync适用于实现增量备份,即只备份源中已更改的文件或目录,而不是整个备份。这样可以节省存储空间和传输时间,并提供有效的恢复点。

  5. 文件迁移:rsync可以在不同的文件系统、硬盘或服务器之间迁移文件和目录。它确保文件属性和内容的完整性,并在迁移过程中减少了传输时间。

  6. 高可用性配置:rsync可以与其他工具(如文件系统监控或负载均衡器)结合使用,实现高可用性配置。例如,在集群环境中使用rsync定期同步文件,以保持多个节点之间的一致性。

  7. 数据同步和复制:rsync可用于在数据中心或分布式系统内部同步和复制数据。它可以帮助确保多个存储位置之间的数据一致性,并能够处理大量的数据。

总的来说,rsync的灵活性使其在许多不同的应用场景中发挥作用,无论是文件备份、同步、迁移,还是高可用性配置和数据复制等。

四、rsyns的数据同步方式

数据备份:拉取(下载)      pull

数据恢复:推送(上传)      push

五、rsync的传输模式

一、本地传输

rsync本地传输模式是在本地文件系统上进行文件传输和同步的一种模式。它适用于需要在同一台计算机上同步或复制文件的场景。以下是使用rsync进行本地传输的示例命令:

  1. 同步目录:
rsync -av /path/to/source /path/to/destination

这将递归地同步源目录下的所有文件和子目录到目标目录中。每当运行此命令时,rsync会检测源和目标之间的差异,并进行增量更新。

  1. 仅复制新文件:
rsync -av --ignore-existing /path/to/source /path/to/destination

此命令会将源目录中尚不存在于目标目录的文件复制到目标目录中。已经存在于目标目录中的文件将被忽略,不进行复制。

  1. 同步文件夹:
rsync -av /path/to/source/ /path/to/destination/

这个命令将同步源目录下的所有文件和子目录,保持目标目录与源目录内容一致。末尾的斜杠“/”表示复制目录中的内容而不包括目录本身。

  1. 删除不存在的文件:
rsync -av --delete /path/to/source /path/to/destination

在这个命令中,如果目标目录中存在于源目录中不存在的文件,rsync会将其删除,以保持源和目标之间的同步状态。

这些命令演示了在本地环境中使用rsync进行文件传输和同步的基本用法。你可以根据具体的需求调整命令的参数和选项。记得在执行任何文件操作之前,仔细检查命令并确认操作没有风险。

二、远程传输

rsync远程传输模式是通过SSH协议在本地和远程系统之间进行文件传输和同步的一种模式。它可以在两台计算机之间安全地复制文件,并保持文件的一致性。以下是使用rsync进行远程传输的示例命令:

  1. 从本地复制到远程系统:
rsync -av -e ssh /path/to/source user@remote:/path/to/destination

这个命令会将本地源目录中的文件和目录同步到远程目标目录中。-e ssh 选项指定使用SSH协议进行连接和传输。

  1. 从远程系统复制到本地:
rsync -av -e ssh user@remote:/path/to/source /path/to/destination

这个命令会将远程源目录中的文件和目录同步到本地目标目录中。

  1. 仅复制新文件:
rsync -av --ignore-existing -e ssh /path/to/source user@remote:/path/to/destination

此命令将仅复制本地源目录中远程目标目录中尚不存在的文件到远程目标目录。

  1. 同步文件夹:
rsync -av -e ssh /path/to/source/ user@remote:/path/to/destination/

这个命令将递归地同步本地源目录中的所有文件和子目录到远程目标目录。末尾的斜杠“/”表示复制目录中的内容而不包括目录本身。

  1. 删除不存在的文件:
rsync -av --delete -e ssh /path/to/source user@remote:/path/to/destination

在这个命令中,如果远程目标目录中存在于本地源目录中不存在的文件,rsync将删除它们,以保持源和目标之间的同步状态。

这些命令演示了使用 rsync 进行远程传输和同步的基本用法。你需要将示例中的 /path/to/source 替换为你实际的源目录路径,user@remote:/path/to/destination 替换为远程系统的用户名、主机名和目标目录路径。你也可以根据需要调整其他参数和选项。请确保在执行任何文件操作之前,仔细检查命令,确认连接和传输设置正确,并且操作没有风险。

三、守护进程

rsync守护进程模式是指在远程服务器上启动rsync作为一个守护进程,以便通过网络接收和处理rsync客户端的请求。这种模式可以提供更高的传输效率,因为rsync服务器可以维持与客户端之间的持久连接,避免了每次传输都要重新建立连接的开销。以下是启动rsync守护进程的一般步骤:

  1. 配置rsync服务端:

    • 首先,确保远程服务器上已经安装了rsync。
    • 创建一个名为 rsyncd.conf 的配置文件,通常位于 /etc/rsyncd.conf 或 /etc/rsync/rsyncd.conf
    • 在配置文件中指定要共享的目录和访问权限等信息。例如:
      uid = nobody
      gid = nobody
      [mydata]
      path = /path/to/shared/directory
      read only = yes
      
      上述配置中,mydata 是共享名称,/path/to/shared/directory 是要共享的目录路径。
    • 配置其他选项,如认证方式、日志路径等。根据需要进行设定。
  2. 启动rsync守护进程:

    • 使用以下命令以守护进程模式启动rsync:
      rsync --daemon
      
    • rsync将读取配置文件中的设置并在服务器上启动守护进程。
  3. 连接到rsync服务器:

    • 在客户端上使用rsync命令连接到rsync服务器,并执行文件传输等操作。
    rsync -av /path/to/local/source rsync://server_address/mydata
    
    • server_address 是rsync服务器的IP地址或主机名,mydata 是配置文件中指定的共享名称。

通过这种方式,rsync客户端可以连接到rsync服务器,并在保持持久连接的情况下进行文件传输和同步操作。

请注意,启动rsync守护进程需要谨慎处理安全性和访问控制。你可以在rsync的官方文档中找到更多关于配置和安全性的详细信息。

六、配置环境

一、首先配置yum源

 

 二、关闭防火墙、图形化、挂载、设置宽容模式

 三、设置IP

 四、重新启动并安装httpd

systemctl restart network

yum install -y httpd

五、安装rsync

一般是存在于linux中 无需安装

六、搭建服务

 七、配置文件环境

vim /etc/rsyncd.conf 

进入配置文件下

 八、创建用户 -s指定不能登陆操作系统

useradd -s /sbin/nologin -M rsync
 

九、创建一个同步的目录并更改一下属主和属组

 

 十、创建一个密码文件并赋予600权限

 echo "jx_mpy:2305" > /etc/rsync.passwd

写到etc下的passwd

chmod 600 /etc/rsync.passwd
重启服务

systemcti restart rsyncd

服务器配置完成了,输入netstat -anptl验证是否启动  然后切换到客户端

十一、配置客户端  与服务器配置环境一致

yum源

挂载

宽容模型

防火墙

图形化

配ip

十二、客户端创建文件为user.txt

cat /etc/passwd > /user.txt

查看 cat  /user.txt 

 到现在为止用户文件已经成功创建出来

十三、修改文件内容实现同步

systemctl start rsyncd

成功

 回到服务器验证

 cat user 查看

 在切回服务器

输入 vim /user.txt 进入后改文件

删40行 保留3行 保存

再次执行

 回到服务器验证成功

 十四、inotfy实时同步

先安装inotfy包

安装httpd

 打开端口 80号 验证

 查看首页文件  cd /var/www/html/

 在客户端也安装一个httpd

 重启httpd

 验证端口号 netstat -anptl

 在服务器段输入 vim /etc/rsyncd.conf 更改配置文件

 保存退出并重启rsyncd

服务器端配置完成

客户端输入 vim /etc/sysctl.conf

sysctl -p 刷新 配置完成

十五、验证

在开启一个终端

 在第一个终端的家目录下输入  inotifywait -mrq -e modify,create,move,delete /var/www/html

他会进入到一个监听状态下

 创建 删除或编辑内容的时候 左边监听内容会自主发生变化

 里面的~也是缓存文件

十六、脚本 

 解释:第二三行的意思是 对目录进行监控

           第四行的意思是 如果目标目录有文件先把他删掉,再把它上传到对应的模块下

           把客户端mul目录下的文件上传到服务器段

模块所对应的路径

while语法(是个循环语法,说明只要可以都到事件就去做这个事情,做完循环结束)

 执行管道符之前的命令 当读到 目录事件文件之后

 去做一件事情 实现同步的操作然后结束

十七、脚本监听验证

切换到服务器查看是否成功

 

 网页验证

输入IP地址方可查询到结果 

再次更改服务器下的文件内容vim index.html  保存退出

左面在重新输入验证

 在切换回服务器验证 (成功验证刷新内容)

 在服务端 输入vim 1.sh 编辑

将脚本输入 

将他扔到后台

服务器删掉index.html

 回到客户端

更改vim index.html

保留两个hello world

回到服务器

 查看服务器 显示正确

猜你喜欢

转载自blog.csdn.net/Mapinyi666/article/details/131808114