Rsync远程同步

目录

一、Rsync简介

概述

Rsync特性

二、Rsync同步源服务器

三、配置rsync下

目录

一、Rsync简介

概述

Rsync特性

二、Rsync同步源服务器

三、配置rsync下行同步(定时同步)

 配置服务端

客户端 

 格式

同步备份源

免交互

定时同步

 四、Rsync上行同步(实时同步)

定期同步的不足

实时同步的优点

Linux内核的inotify机制

发起端配置rsnc+inotify

 配置rsync上行同步

五、使用Rsync快速删除大量文件

验证

总结


一、Rsync简介

概述

     rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。

      rsync 的官方站点的网址是 rsync.samba.org/,目前最新版本是 3.1.3,由 Wayne Davison 进行维护。作为一种最常用的文件备份工具,rsync 往往是 Linux 和 UNIX 系统默 认安装的基本组件之一。

Rsync特性

  • 支持拷贝特殊文件,如连接文件、设备等。
  • 可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。
  • 可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变 –p。
  • 可以实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar-N)。
  • 可以使用rcp、rsh、ssh等方式来配合传输文件(rsync本身不对数据加密)。
  • 可以通过socket(进程方式)传输文件和数据(服务端和客户端)。
  • 支持匿名的活认证(无需系统用户)的进程模式传输,可以实现方便安全的进行数据备份和镜像。

二、Rsync同步源服务器

在远程同步任务中,负责发起 rsync 同步操作的客户机称为发起端,而负责响应来自客户机的 rsync 同步操作的服务器称为同步源。

  • 在下行同步(下载)中,同步源负责提供文档的原始位置,发起端应对该位置有读取权限。
  • 在上行同步(上传)中,同步源负责提供文档的目标位置,发起端应对该位置具有写入权限。

三、配置rsync下行同步(定时同步)

服务器主机ip
源服务器192.168.247.140
客户机192.168.247.110

 配置服务端

关闭防火墙

systemctl stop firewalld  

setenforce 0

查看rsync服务

rpm -q rsync  #一般已默认安装rsync

修改/etc/rsyncd.conf 配置文件

#如采取匿名的方式,只要将其中的“auth users” 和 “secrets file” 配置项去掉即可。

 保证所有用户对源数据目录/var/www/html都有读取权限

  创建数据文件,输入用户和密码

 启动rsync服务

 rsync --daemon

查看进程

 #关闭rsync服务

kill $(cat /var/run/rsyncd.pid) 
rm -rf /var/run/rsyncd.pid

客户端 

 格式

rsync   [选项]    原始位置    目标位置

选项作用
-r递归模式,包含目录及子目录中的所有文件
-l对于符号链接文件仍然复制为符号链接文件
-v显示同步过程的详细(verbose)信息
-v在传输文件时进行压缩(compress)
-a归档模式,保留文件的权限、属性等信息,等同于组合选项“-rlptgop"
-p保留文件的权限标记
-t保留文件的时间标记
-g保留文件的属组标记(仅超级用户使用)
-o保留文件的属主标记(仅超级用户使用)
-H保留硬连接文件
-A保留ACL属性信息
-D保留设备文件及其他特殊文件
--delete删除目标位置有而原始位置没有的文件
--checksum根据校验和(而不是文件大小、修改时间)来决定是否跳过文件

同步备份源

格式一:用户名@ip::共享模块名    

rsync -avz  backuper@192.168.247.99::myhtml /opt/ky/

格式二:rsync://用户名@IP/共享模块名 

rsync -avz rsync://backuper@192.168.247.99/myhtml /opt/ky/
#backuper指在同步时用的用户身份   #myhtml为共享模块名    #/opt/ky/指的是同步到本地的目录


rsync -avz -e 'ssh -p ssh端口号'   原始位置    目标位置

rsync -avz -e 'ssh -p 22'  root@192.168.247.99:/var/www.html/ /opt/ky/

服务端拷点文件进来

 客户端这边多出了

免交互

 在客户端创建密码文件,密码文件权限必须为600,除了属主,其他人都没有查看权限

服务端拷个文件过来 

 客户端不用输密码就可以登录,可以看到文件已经过来了

定时同步

crontab -e  

 重启服务,查看状态

 四、Rsync上行同步(实时同步)

定期同步的不足

  • 执行备份的时间固定,延迟明显、实时性差
  • 当同步源长期不变化时,密集的定期任务是不必要的

实时同步的优点

  • 一旦同步源出现变化,立即启动备份
  • 只要同步源无变化,则不执行备份

Linux内核的inotify机制

  • 从版本2.6.13开始提供
  • 可以监控文件系统的变动情况,并做出通知响应
  • 辅助软件:inotify-tools

发起端配置rsnc+inotify

  • 使用inotify通知接口,可以用来监控文件系统的各种变化情况,如文件存取、删除、移动、修改等。利用这一机制,可以非常方便地实现文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。
  • 将inotify机制与rsync工具相结合,可以实现触发式备份(实时同步),即只要原始位置的文档发生变化,则立即启动增量备份操作;否则处于静默等待状态。
  • 因为 inotify 通知机制由 Linux 内核提供,因此主要做本机监控,在触发式备份中应用时更适合上行同步。

 配置rsync上行同步

1、修改rsync源服务器配置文件

vim /etc/rsyncd.conf

 干掉进程,然后重启服务

 修改目录权限

2、调整inotify内核参数

  • max_queue_events:监控事件队列大小(默认值为16384)
  • max_user_instances:最多监控实例数(默认值为128)
  • max_user_watches:每个实例最多监控文件数(默认值为8192)

当要监控的目录、文件数量较大或者变化较为频繁时,建议加大这三个参数的值

 vim /etc/sysctl.conf

 检查下

3、安装inotify-tools

用inotify 机制还需要安装inotify-tools, 以便提供inotifywait、 inotifywatch 辅助工具程序,用来监控、汇总改动情况。

  • inotifywait:可监控modify (修改)、create (创建)、move (移动)、delete (删除)、attrib ( 属性更改)等各种事件,一有变动立即输出结果。
  • inotifywatch:可用来收集文件系统变动情况,并在运行结束后输出汇总的变化情况。

将安装包拉进来

 解压缩安装包

 tar zxvf inotify-tools-3.14.tar.gz -C /opt/

编译安装

./configure

make && make install

执行inotifywait命令,然后开启另一个新终端向/opt/kgc目录下添加文件、移动文件,在原来的终端中跟踪屏幕输出结果。

 inotifywait -mrq -e modify,create,move,delete /opt/kgc

选项

  • -e:用来指定要监控哪些事件
  • -m:表示持续监控
  • -r:表示递归整个目录
  • -q:简化输出信息

 在发起端,编写触发式同步脚本

在另外一个终端编写触发式同步脚本(注意,脚本名不可包含 rsync 字符串,否则脚本可能不生效)。

 加上权限

 运行脚本(后台运行)

cd /opt/

./inotify.sh &

现在发起端上传,删除文件,源服务器都能看到

 如果同步的文件比较大,同步时比较慢导致后面文件没来的及同步,则需要在脚本内添加消息队列或缓冲:

五、使用Rsync快速删除大量文件

假如要在linux下删除大量文件,比如100万、1000万,像/usr/local/nginx/proxy_temp的nginx缓存等,那么rm -rf * 可能就不好用了,因为要等待很长一段时间。

在这种情况下我们可以使用rsync来巧妙处理。rsync实际用的是替换原理。

1、先创建两个文件夹

2、在ky26文件夹中生成大量文件

批量删除文件

  1. 选项说明:
    --delete-before  接收者在传输进行删除操作
    -a  归档模式,表示以递归方式传输文件,并保持所有文件属性
    -H  保持硬连接的文件
    -v  详细输出模式
    --progress   在传输时显示传输过程
    --stats   给出某些文件的传输状态

后面/不能少

验证

ky26文件夹里已经空了

总结

rsync效率高,功能强大,非常适合做异地容灾

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/7285.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

黑客在供应链攻击中破坏 3CX 桌面应用程序

据报道,3CX 互联网协议语音 (VOIP) 桌面客户端的数字签名和木马化版本被用于在持续的供应链攻击中针对公司的客户。 3CX 是一家 VoIP IPBX 软件开发公司,其 3CX Phone System 被全球超过 60万家公司使用,每日用户超过 1200 万。 该公司的客…

大数据与互联网的结合

大数据与互联网的结合一、互联网产业的需求二、大数据平台架构三、大数据应用--数据分析四、数据分析案例一、互联网产业的需求 1、分布式系统执行任务瓶颈:延迟高。MapReduce:几分钟,Spark:几秒钟。 2、互联网产品要求&#xf…

复旦微ZYNQ7020全国产替代方案设计

现在国产化进度赶人,进口的芯片只做了个功能验证,马上就要换上国产的。国内现在已经做出来zynq的只有复旦微一家,已经在研制的有上海安路,还有成都华微(不排除深圳国威也在做,毕竟这个市场潜力很大&#xf…

形式语言总结

形式语言马上考试了,每天写一点笔记复习一下,更新中ing 第一章DFA DFA是一种特殊的NFA, 第2章NFA 1.设计一个由01构成的串,1是偶数0是奇数的NFA 对0 1的状态进行区分 2.对以下几种语言设计NFA : 第3-4章正则表达式 正则表达…

Vue中的slot插槽

目录 (一)什么是slot插槽 (1)slot插槽的作用 (2)插槽的好处和使用场景 (3)slot插槽的分类 1、默认插槽 2、具名插槽 3、作用域插槽 (一)什么是slot插槽 (1)slot插槽的作用 slot具有“占坑”的作用…

高级威胁的攻击和防护A P T

今天下午正好有点时间,和大家聊聊高级威胁的攻击和防护工作。 一、基础概念 高级威胁也称为APT,它的实施者一般是以组织性的黑客团体为主,包括来自强权国家、敌对势力、民间黑客组织,它们主要是以恶意代码(病毒、蠕虫、木马)、漏…

50家公司Java,C++招聘要求

目录 🍍前言 🍍总结 🌳基本要求 🌳加分项 🍍信息 👂下一秒(电视剧《微微一笑很倾城》插曲) - 张碧晨 - 单曲 - 网易云音乐 招聘要求 --> 🍍信息 🍍…

Redis学习

Redis数据结构介绍 基本类型 1. String String类型,也就是字符串类型,是Redis中最简单的存储类型。 其value是字符串,不过根据字符串的格式不同,又可以分为3类: string:普通字符串int:整数…

Office 2016安装包与教程

[软件名称]: Office 2016 [软件大小]: 2.39GB [安装环境]: Win11/Win 10/Win 8/Win 7 [软件安装包下载]:https://pan.quark.cn/s/749a087528ec “Office 2016是一款集成自动化办公软件,不仅包括了诸多的客户端软件,还包括强大的服务器软件,同时包括了相关的服务、技术和工具。…

敏捷工具.敏捷项目的可视化

在敏捷项目里,挂在墙上的“人人可见的大图表”是一种普遍的实践,它被用来共享项目的状态并将之可视化。在精益生产系统里,看板方法是给每个标准生产单元或者每个生产批量附上一张卡片。只有当一个“进行中”卡片所代表的工作完成后&#xff0…

STC的官网,是我永远忘不掉的炼丹炉

搞电子的,应该都搞过8051搞8051的,那应该都搞过STC在国内,STC已经成为了8051的代名词http://www.stcmcudata.com/如果你刚开始搞嵌入式,应该学单片机,你学习单片机,就应该学习下8051,学习8051&a…

反应持续时间:一种灵活、免费的心理科学工具

导读 简单按键的反应持续时间是一种容易获得但未被充分利用的测量指标。虽然反应时间在实验心理学家和认知建模者开发的工具箱中占据主导地位,但任何关于标准按键反应的研究也允许测量从反应开始到反应结束等持续时间。此外,反应时间和持续时间是完全独…

Git知识点及常用命令介绍—2023.04

文章目录一、Git介绍1、版本控制概述1.1 版本控制定义1.2 为什么要进行版本控制1.3 版本控制工具2、 Git发展历史3、Git工作机制4、 Git和代码托管中心5、Git分支5.1 Git分支定义5.2 使用分支的好处6、团队协作机制6.1 团队内协作机制6.2 跨团队协作机制二、Gitlab介绍三、码云…

MySQL基础-变量/流程控制/游标/触发器

文章目录MySQL基础-变量/流程控制/游标/触发器一、变量1、系统变量2、用户变量二、流程控制1、分支语句2、循环语句3、跳转语句三、游标1、概念2、使用四、触发器1、触发器概念2、触发器使用3、触发器的优缺点MySQL基础-变量/流程控制/游标/触发器 一、变量 在MySQL数据库的存…

【深度学习】P1 神经网络、监督学习与深度学习、深度学习的驱动力量

神经网络、监督学习与深度学习、深度学习的驱动力量神经网络深度学习与监督学习标准神经网络(Standard Neural Network)卷积神经网络(Convolutional Neural Network)循环神经网络(Recurrent Generative Network&#x…

Linux-简易shell

一、Shell 相关知识 1.1 外部命令与内建命令 ​ 我认为 shell 其实可以看作由一个字符串处理的前端加一个调用其他文件的后端组成。前端将用户输入的字符串进行解析,然后将解析的结果传给后端,让后端去调用其他文件。这里的文件指的是“外部命令”。之…

Linux的基本命令

目录 ls pwd cd touch cat mkdir rm cp mv man vim 1.创建文件/打开文件 2.进入插入模式 3.保存 4.退出 grep ps netstat ls 语法:ls(选项)(目录或文件) 功能 对于目录:列出该目录下所…

【chartGPT】我们要不要搞chartGPT?

话题:官兔子并未表态要研发chartGPT,chartGPT炒的很火,我们到底要不要投入研发呢? 问题起因:我个人是做技术的,也玩炒股。就昨天吧,看到一个热评【马斯克等呼吁暂停chartGPT5的研发,周鸿炜谈不发展才是最大…

另类推柿子 Crypto Lights

Crypto Lights 大意: 有 n 个台灯初始时都是暗的,每次等概率随机一个暗台灯将其点亮,若点亮后存在一个长度为 k 的连续段有大于一个台灯被点亮则立刻停止,求期望点亮多少台灯。答案对1e97 取模 思路: 没见过这样子的…

无公网IP,SSH远程连接Linux CentOS服务器【内网穿透】

文章目录视频教程1. Linux CentOS安装cpolar2. 创建TCP隧道3. 随机地址公网远程连接4. 固定TCP地址5. 使用固定公网TCP地址SSH远程本次教程我们来实现如何在外公网环境下,SSH远程连接家里/公司的Linux CentOS服务器,无需公网IP,也不需要设置路…
最新文章