iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux服务器间文件实时同步的实现
  • 400
分享到

Linux服务器间文件实时同步的实现

Linux服务器间文件同步Linux服务器同步 2022-06-04 22:06:14 400人浏览 薄情痞子
摘要

使用场景 现有服务器A和服务器B,如果服务器A的指定目录(例如 /home/paul/rsync/ )中的内容发生变更(增删改和属性变更),实时将这些变更同步到服务器B的目标目录中(例如 /home/paul/rsyn

使用场景

现有服务器A和服务器B,如果服务器A的指定目录(例如 /home/paul/rsync/ )中的内容发生变更(增删改和属性变更),实时将这些变更同步到服务器B的目标目录中(例如 /home/paul/rsync/ )。

数据镜像备份工具Rsync

Rsync是一个非常快速和灵活的文件复制工具。它支持本机或者是和远程服务器间的文件复制。Rsync使用了delta-transfer算法,它只需要传送源端和目标端的文件差异部分,大大减少了网络带宽的消耗和复制耗费的时间。Rsync多用于数据备份和镜像。

Rsync使用了快速检查算法,通过比较文件大小或最后修改时间的变化来判断文件是否需要同步。

Rsync连接远程主机有两种方式:使用ssh或rsync daemon。这里使用Rsync方式来实现远程文件备份。

Rsync的安装与操作

安装Rsync

分别在服务器A和服务器B的terminal执行:


sudo yum install rsync

安装完毕后,会发现rsync的配置文件位于 etc/rsyncd.conf 。该文件使用daemon方式同步时需要使用,此处暂不介绍。

配置服务器A和B之间的免密登录

服务器A执行:


ssh-keygen
ssh-copy-id 服务器B的IP地址

创建源端目录和目标端目录

在服务器A中:


mkdir /home/paul/rsync

在服务器B中:


mkdir /home/paul/rsync

在服务器A创建测试文件


echo "Hello from Server A" >> /home/paul/rsync/demo.txt

执行文件传送命令

在服务器A运行:


# (1)
rsync -avPz --progress /home/paul/rsync 192.168.100.130:/home.paul/rsync
# (2)
rsync -avPz --delete --progress /home/paul/rsync 192.168.100.130:/home.paul/rsync

会发现在demo.txt也出现在了服务器B中/home/paul/rsync目录。

命令解析:

(1) 将服务器A中的/home/paul/rsync目录内的文件复制到服务器B(192.168.100.130)的/home.paul/rsync中。

(2) 比较目标端和源端的文件,如果目标端的文件在源端不存在,在目标端删除该文件。

Rsync存在的问题

Rsync仅是一个文件复制工具,它无法对源端文件的增删改操作进行监听。在源端做出更改后,需要执行rsync命令才能将变更同步到目标端。

Rsync在每次同步前需要扫描整个目录。如果源目录内的文件数量比较多,扫描可能需要耗费较多的时间。
为了满足实时监听的要求,我们需要引入另一个工具:inotify。

文件系统事件监听工具inotify

inotify-tools为inotify提供一个简单接口。它是一个C语言编写的库,同时也包含命令行工具。

inotify-tools的详细介绍请点击: https://GitHub.com/rvoicilas/inotify-tools/wiki

inotify-tools的安装

对于Centos7系统,依次执行:


yum install -y epel-release
yum --enablerepo=epel install inotify-tools

使用inotifywait命令进行事件监听

监听脚本如下(inotifywait-rsync.sh):


inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --fORMat '%T %w%f' -e modify,delete,create,attrib /home/paul/rsync/ | while read file
do
rsync -avPz --progress /home/paul/rsync/ 192.168.100.130:/home/paul/rsync/
rsync -avPz --delete /home/paul/rsync/ 192.168.100.130:/home/paul/rsync/
echo "${file} was synchronized"
done

参数解析

  • -m 保持持续监听状态,如果不写该参数,inotifywait会在监听到一次事件之后退出。
  • -r 递归方式监听目录。
  • -q 安静模式,打印输出较少的内容。
  • --timefmt 指定时间的输出格式。
  • --format 指定事件输出的格式。
  • -e 设置监听的事件类型。这里监听增删改和metadata的变更。

对于每次触发的监听时间,inotifywait会执行do和done之间的代码。在这里,我们调用之前所说的rsync命令进行文件同步。

监听脚本加入crontab


crontab -e
* * * * * sh /home/paul/inotifywait-rsync.sh

参考资料
Https://rsync.samba.org
https://github.com/rvoicilas/inotify-tools/wiki

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

--结束END--

本文标题: Linux服务器间文件实时同步的实现

本文链接: https://www.lsjlt.com/news/19987.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux服务器时间同步怎么实现
    这篇文章主要讲解了“Linux服务器时间同步怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux服务器时间同步怎么实现”吧!一、server端安装ntp校时包,修改独立主机rm ...
    99+
    2023-06-16
  • javascript实现同步服务器时间、同步倒计时
    这篇文章主要介绍“javascript实现同步服务器时间、同步倒计时”,在日常操作中,相信很多人在javascript实现同步服务器时间、同步倒计时问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方...
    99+
    2024-04-02
  • 实现【Linux--NTP 时间同步服务搭建】
    实现【Linux--NTP 时间同步服务搭建】 🔻 前言🔻 一、NTP 校时🔰 1.1 NTP 服务校时与 ntpdate 校时的区别...
    99+
    2023-08-31
    linux 运维 NTP 时间同步服务搭建 ntpdate ntp
  • linux中怎么实现时间同步
    这期内容当中小编将会给大家带来有关linux中怎么实现时间同步,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。方法1:与一个已知的时间服务器同步代码如下:ntpdate time.nist.gov其中 ti...
    99+
    2023-06-13
  • Windowsserver2012NTP时间同步的实现
    NTP 服务【 Network Time Protocol ( NTP )】是用来使计算机时间同步化的一种协议,它可以使计算机 对其服务器或时钟源(如石英钟,GPS 等等 ) 做同步...
    99+
    2024-04-02
  • 同步阿里云服务器时间实现准确的时间管理
    阿里云服务器是许多企业进行数据存储、计算和应用部署的首选平台。然而,由于地理位置、网络环境、硬件设备等多方面因素,阿里云服务器的时间可能会出现误差。为了确保工作的准确性,同步阿里云服务器时间是非常重要的。本文将详细介绍如何实现阿里云服务器时...
    99+
    2023-10-29
    时间 阿里 准确
  • linux两台服务器时间同步
    让Linux两台服务器时间同步,可以通过网络时间协议(NTP)来实现。NTP是一种可以在网络时间服务器和客户端之间同步时间的协议,通过使用NTP,可以保证网络中的所有计算机时间的准确性。 在服务器1上...
    99+
    2023-09-16
    服务器 linux github
  • 阿里云服务器时间同步的实现与优化
    随着云计算技术的发展,越来越多的企业和个人开始使用阿里云服务器。在使用阿里云服务器的过程中,时间同步是一个非常重要的问题。本文将详细说明如何实现阿里云服务器时间同步,并提供一些优化策略。 一、阿里云服务器时间同步的实现阿里云服务器的时间同步...
    99+
    2023-11-09
    阿里 服务器 时间
  • Linux系统怎么实现文件同步
    Linux系统怎么实现文件同步,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Linux系统实现文件同步的方法一、准备源文件地址:192.168.0.143目标文...
    99+
    2023-06-28
  • 阿里云服务器授时教程实现精准时间同步
    随着云计算的普及,越来越多的企业和个人开始使用阿里云服务器。其中,时间同步是云计算中非常重要的一个环节,它可以保证服务器的正常运行和数据的安全性。本文将详细介绍如何在阿里云服务器上实现精准的时间同步。 一、什么是时间同步时间同步是指计算机系...
    99+
    2023-12-11
    阿里 精准 服务器
  • Linux如何实现时钟同步
    这篇文章主要介绍Linux如何实现时钟同步,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!由于硬件的原因,机器或多或少的根标准时间对不上,一个月的误差几秒到几分钟不等。对于服务器来说时间不准,会有很多麻烦。例如,支付的...
    99+
    2023-06-27
  • Centos服务器时间同步
    前言 服务器时间同步有多种情况,不同情况处理方式也有差异。比如,可以连外网,则可直接使用ntpdate定时同步互联网的时间服务器时间(如阿里的时间服务器ntp.aliyun.com)。 如果不能连外网,则需要指定一台服务器当作时间服务器。...
    99+
    2023-08-31
    服务器 centos 运维
  • Linux文件同步到本地怎么实现
    要将Linux系统中的文件同步到本地,可以通过以下几种方式实现: 使用rsync命令:rsync命令是一种高效的文件同步工具,可...
    99+
    2023-10-27
    Linux
  • Linux如何实现进程间同步
    这篇文章主要为大家展示了“Linux如何实现进程间同步”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux如何实现进程间同步”这篇文章吧。##互斥量mutex我们已经知道了互斥量可以用于在线...
    99+
    2023-06-15
  • PHP Spring 文件同步:如何做到实时同步?
    文件同步是一项非常重要的任务,特别是在开发过程中,你需要不断地同步代码和文件以保证整个项目的正常运行。而实时同步则更为重要,它可以让你在修改文件之后立即看到效果,从而加快开发效率。本文将介绍如何使用 PHP Spring 实现实时文件同步...
    99+
    2023-08-06
    spring 文件 同步
  • Linux系统中如何同步服务器时间
    这篇文章主要为大家展示了“Linux系统中如何同步服务器时间”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux系统中如何同步服务器时间”这篇文章吧。Linux时间的操作的常见命令date命...
    99+
    2023-06-27
  • NTP(时间同步服务器):国内常用的NTP时间源同步服务器汇总
    使用以前请先ping相应的域名查看网络是否可达,和相应的访问速度 ntp.ntsc.ac.cn   中国国家授时中心 cn.ntp.org.cn     中国授时 阿里云NTP时间源服务器 ntp1.aliyun.com ntp2.aliy...
    99+
    2023-09-20
    服务器 网络 运维
  • 如何在Python中实现文件与实时接口的同步?
    在现代的软件开发中,文件和实时接口都是非常重要的组成部分。文件用于存储数据和信息,而实时接口则用于实时传递和接收信息。在一些特殊的场景下,需要将文件和实时接口进行同步。这时候,Python就成为了一个非常好的选择。Python作为一种高级...
    99+
    2023-08-20
    文件 实时 接口
  • 阿里云内部NTP服务器实现时间同步的神秘武器
    NTP(Network TimeProtocol)是一种在网络上同步时间的标准协议,广泛应用于各种网络环境。在阿里云内部,NTP服务器也发挥着重要作用,确保了各个系统和设备的时间准确同步。 NTP服务器是阿里云内部时间同步的神秘武器,它通...
    99+
    2023-11-13
    阿里 武器 神秘
  • Rsync如何实现文件同步
    这篇文章主要介绍“Rsync如何实现文件同步”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Rsync如何实现文件同步”文章能帮助大家解决问题。rsync的目的是实现本地主机和远程主机上的文件同步(包...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作