Rsync数据同步工具_rsync --delete-before-程序员宅基地

技术标签: 运维  linux  服务器  

一、什么是Rsync

        Rsync是一款开源的,快速的,多功能的,可实现全量及增量(差异化备份)的本地或远程数据同步备份的优秀工具。

        Rsync软件适用于Unix、Linux、Windows等多种操作系统。

(1)可使本地和远程两台主机之间的数据快速复制同步镜像,远程备份的功能,这个功能类似ssh带scp命令,但又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝。

(2)rsync还可以在本地主机的不同分区或目录之间全量及增量的复制数据,

(3)利用rsync还可以实现删除文件和目录的功能。相当于rm

(4)rsync相当于scp,cp.rm但是还优于他们每一个命令。

        在同步备份数据时,默认情况下rsync通过独特的“quick check” 算法,它仅同步大小或者最后修改时间发生变化的文件或目录,当然也可以是根据权限,属主等属性的变化同步,但需要指定相应的参数,甚至可以实现只同步一个文件里有变化的内容部分,所以可以实现快速的同步备份数据。

        Rsync特性

        1.能更新整个目录树和文件系统;

        2. 有选择性的保持符号链链、硬链接、文件属性、权限、设备以及时间等;

        3. 传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。

        4. 能用rsh、ssh 或直接端口做为传输端口;

        5. 支持匿名rsync 同步文件,是理想的镜像工具;

        Rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时Rsync server会打开一个873端口,等待客户端去连接。

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

二、Rsync远程同步

        1.下行同步

        (1)实验环境

虚拟机版本 VMware Workstation 16 Pro 16.2.4 build-20089737
镜像版本 CentOS-7-x86_64-DVD-1708.iso
rsync版本 rsync-3.1.2-12.el7_9.x86_64
源服务器地址 192.168.254.106/24
客户机地址 192.168.254.107/24

        (2)实验要求

        通过配置Rsync远程同步来完成下行同步

        (3)实验配置

服务端配置

关闭防火墙

systemctl stop firewalld  

setenforce 0

查看rsync服务

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

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

uid = root

gid = root

use chroot = yes                                   //禁锢在源目录

address = 192.168.254.106                 //监听地址

port 873                                                //监听端口

log file = /var/log/rsyncd.log                 //指定日志文件

pid file = /var/run/rsyncd.log                //指定存放进程id的文件

host allow = 192.168.254.0/24            //指定客户机网段

dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2        //以下文件格式传输时不再压缩

 

[myhtml]                                                                //共享模块名称
path = /var/www/html                                            //备份源数据路径
comment = this is rsync of www.wcy.com             //备注信息
read only = yes                                                     //设置客户端只读
auth users = lisi                                                     //授权用户名字
secrets file = /etc/rsyncd_users.d                         //存放授权用户的信息文件路径

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

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

vim /etc/rsyncd_users.db                                       //创建数据文件,输入用户和密码

chmod 600 /etc/rsyncd_users.db                           //更改文件权限

lisi:123456

 

rsync --deamon                                                //启动服务

#关闭rsync服务

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

 客户端配置

rsync -avz [email protected]::test /opt/                        //进行测试

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

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

同步备份源

格式一:用户名@ip::共享模块名    
rsync -avz  [email protected]::myhtml /opt/ky/
格式二:rsync://用户名@IP/共享模块名 
rsync -avz rsync://[email protected]/myhtml /opt/ky/

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

rsync -avz -e 'ssh -p 22'  [email protected]:/var/www.html/ /opt/ky/

服务端放入文件 

客户端进行接收

免交互

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

 使用 --password-file命令

 可以看出不需要密码了

还可以使用crontab -e  命令设置定时同步

2.Rsync上行同步(实时同步)

定期同步的不足

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

实时同步的优点

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

Linux内核的inotify机制

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

发起端配置rsnc+inotify

        使用inotify通知接口,可以用来监控文件系统的各种变化情况,如文件存取、删除、移动、修改等。利用这一机制,可以非常方便地实现文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。

        将inotify机制与rsync工具相结合,可以实现触发式备份(实时同步),即只要原始位置的文档发生变化,则立即启动增量备份操作;否则处于静默等待状态。因为 inotify 通知机制由 Linux 内核提供,因此主要做本机监控,在触发式备份中应用时更适合上行同步。

配置rsync上行同步

        (1)实验环境

虚拟机版本 VMware Workstation 16 Pro 16.2.4 build-20089737
镜像版本 CentOS-7-x86_64-DVD-1708.iso
rsync版本 rsync-3.1.2-12.el7_9.x86_64
源服务器地址 192.168.254.106/24
客户机地址 192.168.254.107/24

        (2)实验要求

        通过配置Rsync远程同步来完成上传同步

        (3)实验配置

服务端配置

修改rsync源服务器配置文件

vim /etc/rsyncd.conf

重启服务后修改目录权限 

2、调整inotify内核参数

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

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

vim /etc/sysctl.conf                                                        //通过修改配置文件更改参数

使用sysctl -p 检查

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 字符串,否则脚本可能不生效)。

 加上权限加入开机自启

后台运行脚本

3、如何使用rsync工具删除大量文件

1.实验环境

虚拟机版本

VMware Workstation 16 Pro 16.2.4 build-20089737

镜像版本

CentOS-7-x86_64-DVD-1708.iso

rsync版本

rsync-3.1.2-12.el7_9.x86_64

主服务器地址

192.168.254.106/24

2.实验要求

通过使用rsync工具删除文件夹内的大量数据

3.实验具体配置

Rpm -q rsync                                   //检查rsync是否安装

mkdir /home/empty                         //创建空文件夹

mkdir /home/full

touch file.{1..1000}                            //创建含有大量文件的文件夹

rsync --delete-before -avH --progress --stats /home/empty/ /home/full/

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

/home/empty/     指定空文件夹位置

/home/full/           指定要删除文件夹位置

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/g_l_d_y/article/details/129971130

智能推荐

java 实现 数据库备份_java数据备份-程序员宅基地

文章浏览阅读1k次。数据库备份的方法第一种:使用mysqldump结合exec函数进行数据库备份操作。第二种:使用php+mysql+header函数进行数据库备份和下载操作。下面 java 实现数据库备份的方法就是第一种首先我们得知道一些mysqldump的数据库备份语句备份一个数据库格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 ..._java数据备份

window10_ffmpeg调试环境搭建-编译64位_win10如何使用mingw64编译ffmpeg-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏14次。window10_ffmpeg调试环境搭建_win10如何使用mingw64编译ffmpeg

《考试脑科学》_考试脑科学pdf百度网盘下载-程序员宅基地

文章浏览阅读6.3k次,点赞9次,收藏14次。给大家推荐《考试脑科学》这本书。作者介绍:池谷裕二,日本东京大学药学系研究科教授,脑科学研究者。1970年生于日本静冈县,1998年取得日本东京大学药学博士学位,2002年起担任美国哥伦比亚大学客座研究员。专业为神经科学与药理学,研究领域为人脑海马体与大脑皮质层的可塑性。现为东京大学药学研究所教授,同时担任日本脑信息通信融合研究中心研究主任,日本药理学会学术评议员、ERATO人脑与AI融合项目负责人。2008年获得日本文部大臣表彰青年科学家奖,2013年获得日本学士院学术奖励奖。这本书作者用非常通俗易懂_考试脑科学pdf百度网盘下载

今天给大家介绍一下华为智选手机与华为手机的区别_华为智选手机和华为手机的区别-程序员宅基地

文章浏览阅读1.4k次。其中,成都鼎桥通信技术有限公司是一家专业从事移动通讯终端产品研发和生产的高科技企业,其发布的TD Tech M40也是华为智选手机系列中的重要代表之一。华为智选手机是由华为品牌方与其他公司合作推出的手机产品,虽然其机身上没有“华为”标识,但是其品质和技术水平都是由华为来保证的。总之,华为智选手机是由华为品牌方和其他公司合作推出的手机产品,虽然外观上没有“华为”标识,但其品质和技术水平都是由华为来保证的。华为智选手机采用了多种处理器品牌,以满足不同用户的需求,同时也可以享受到华为全国联保的服务。_华为智选手机和华为手机的区别

c++求n个数中的最大值_n个数中最大的那个数在哪里?输出其位置,若有多个最大数则都要输出。-程序员宅基地

文章浏览阅读7.6k次,点赞6次,收藏17次。目录题目描述输入输出代码打擂法数组排序任意输入n个整数,把它们的最大值求出来.输入只有一行,包括一个整数n(1_n个数中最大的那个数在哪里?输出其位置,若有多个最大数则都要输出。

python overflowerror_python – 是否真的引发了OverflowError?-程序员宅基地

文章浏览阅读520次。Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34)[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwinType "help", "copyright", "credits" or "license" for more information.>>> float(1...

随便推点

LVS+Keepalived使用总结_this is the redundant configuration for lvs + keep-程序员宅基地

文章浏览阅读484次。一、lvs简介和推荐阅读的资料二、lvs和keepalived的安装三、LVS VS/DR模式搭建四、LVS VS/TUN模式搭建五、LVS VS/NAT模式搭建六、keepalived多种real server健康检测实例七、lvs持久性工作原理和配置八、lvs数据监控九、lvs+keepalived故障排除一、LVS简介和推荐阅读的资料 学习LVS+Keepalived必须阅读的三个文档。1、 《Keepalived权威指南》下载见http://..._this is the redundant configuration for lvs + keepalived server itself

Android面试官,面试时总喜欢挖基础坑,整理了26道面试题牢固你基础!(3)-程序员宅基地

文章浏览阅读795次,点赞20次,收藏15次。AIDL是使用bind机制来工作。java原生参数Stringparcelablelist & map 元素 需要支持AIDL其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。下图是我进阶学习所积累的历年腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

机器学习-数学基础02补充_李孟_新浪博客-程序员宅基地

文章浏览阅读248次。承接:数据基础02

短沟道效应 & 窄宽度效应 short channel effects & narrow width effects-程序员宅基地

文章浏览阅读2.8w次,点赞14次,收藏88次。文章目录1. 概念:Narrow Width Effect: 窄宽度效应Short Channel effects:短沟道效应阈值电压 (Threshold voltage)2. 阈值电压与沟道长和沟道宽的关系:Narrow channel 窄沟的分析Short channel 短沟的分析1. 概念:Narrow Width Effect: 窄宽度效应在CMOS器件工艺中,器件的阈值电压Vth 随着沟道宽度的变窄而增大,即窄宽度效应;目前,由于浅沟道隔离工艺的应用,器件的阈值电压 Vth 随着沟道宽度_短沟道效应

小米组织架构再调整,王川调职,雷军自任中国区总裁_小米更换硬件负责人-程序员宅基地

文章浏览阅读335次。5月17日,小米集团再发组织架构调整及任命通知。新通知主要内容为前小米中国区负责人王川调职,雷军自任中国区总裁。小米频繁调整背后,雷军有些着急了中国区手机业务持续下滑。根据IDC最近公布的数据,小米一季度全球出货量为2750万台,相比去年同期的2780万台,小幅下降。参考Canalys、Counterpoint的统计,小米一季度出货量也都录得1%的同比下滑。作为对比,IDC数据显示,华为同期出..._小米更换硬件负责人

JAVA基础学习大全(笔记)_java学习笔记word-程序员宅基地

文章浏览阅读9.1w次。JAVASE和JAVAEE的区别JDK的安装路径[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-perPRPgq-1608641067105)(C:\Users\王东梁\AppData\Roaming\Typora\typora-user-images\image-20201222001641906.png)]卸载和安装JDK[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SYnXvbAn-1608641067107)(C:\Users_java学习笔记word