rsync介绍和使用

 

1. rsync简介

  rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。

2. rsync特性

rsync支持很多特性:

  • 可以镜像保存整个目录树和文件系统
  • 可以很容易做到保持原来文件的权限、时间、软硬链接等等
  • 无须特殊权限即可安装
  • 快速:第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据的过程中可以实 - 行压缩及解压缩操作,因此可以使用更少的带宽
  • 安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接 (ip+端口)
  • 支持匿名传输,以方便进行网站镜像
    3. rsync的ssh认证协议
    rsync命令来同步系统文件之前要先登录remote主机认证,认证过程中用到的协议有2种:

3. rsync的ssh认证协议

rsync命令来同步系统文件之前要先登录remote主机认证,认证过程中用到的协议有2种:

  • ssh协议
  • rsync协议

rsync server端不用启动rsync的daemon进程,只要获取remote host的用户名和密码就可以直接rsync同步文件

rsync server端因为不用启动daemon进程,所以也不用配置文件/etc/rsyncd.conf

ssh认证协议跟scp的原理是一样的,如果在同步过程中不想输入密码就用ssh-keygen -t rsa打通通道

//这种方式默认是省略了 -e ssh 的,与下面等价:
rsync -avz /SRC -e ssh root@172.16.12.129:/DEST -a  //文件宿主变化,时间戳不变-z  //压缩数据传输-v //显示详细信息//当遇到要修改端口的时候,我们可以:
rsync -avz /SRC -e "ssh -p2222" root@172.16.12.129:/DEST  
//修改了ssh 协议的端口,默认是22

需求池

1、大量存储数据需要本地、远程同步或迁移,如存储数据上云、存储架构改造后进行数据同步。

2、安全合规要求大量数据定时异地备份。

3、安全稳定地对大量数据进行迁移

简介

sync 是一款开源、快速、多功能、可实现全量及增量的本地或远程数据同步备份的工具,适用于多种操作系统平台数据同步如unix、Linux、Windows等。

 

解决的痛点

1、大量数据远程同步耗时长,公网网络抖动容易造成数据同步中断

2、增量数据同步

3、数据加密压缩传输,减少网络带宽压力

4、数据限速传输保障其他业务不受影响

5、文件属性和权限与原始文件保持一致

6、不同操作系统之间在文件协议和传输格式上的不兼容性是一个常见问题。rsync 的广泛支持使得跨平台文件传输变得简单。

操作步骤

1、安装rsync工具

a.Redhat\Centos系统

yum install rsync -y 

b、Ubuntu\Debian系统

  •  
  •  
apt-get updateapt-get install rsync

2、语法

rsync [OPTION] src_dir/ username@dst_ip:/dst_dir/

样例

rsync -avP src_dir/ username@dst_ip:/dst_dir/

参数说明

参数
说明
src_dir
源目录
username
目的服务器用户名
dst_ip
目的服务器公网或内网IP
dst_dir
目的服务挂载目录
-a,--archive
归档模式,等同于 -rlptgoD,表示递归复制,并保留文件的所有属性。
-v,--verbose
显示详细输出。
-z,--compress
在传输过程中压缩文件,以节省带宽。
--delete
删除目标目录中源目录没有的文件。
--bwlimit=RATE
限制传输速率及 I/O 带宽,单位为 KB/s。
--exclude
排除特定的文件或目录。
--include
指定不被排除需要传输的文件与目录,常用于与 --exclude 一起使用。
--progress
显示同步的过程及传输时进度等信息。

 

3、操作用例

a、本地备份

将一个目录的内容备份到另一个位置。

rsync -av /data/ /data1/

b、本地增量备份

只同步自上次备份以来发生变化的文件,避免重复传输

rsync -av --delete /data/ /data1/

c.远程数据同步

rsync -avz /data root@192.168.1.8:/data

d.远程备份

定期备份本地文件到远程服务器,限速80Mbps

rsync -avz --delete --bwlimit=10M /data root@192.168.1.8:/data

e.同步大文件

传输大文件使用压缩选项以减少网络带宽的使用

rsync -avz --compress-level=9 /data/Centos7.6.iso root@192.168.1.8:/data

f.多文件同步

可以将多个文件或目录同时同步,使用 --include 和 --exclude 选项来控制需要同步的对象。

rsync -av --include='*/' --include='*.txt' --exclude='*' /data/ /data1/

g.目录镜像

创建一个目录的镜像,使其保持完全同步。

rsync -av --delete /data/ /data1/

h.迁移服务器

在迁移网站或应用程序时,使用 rsync 可以快速有效地转移文件

rsync -avz --delete --progress /var/www/ root@192.168.1.8:/var/www/

i.rsync 与 cron 作业结合,自动化定期备份

(1)系统中执行命令编辑 crontab

crontab -e

(2)添加如下行,每日零晨2点备份

0 2 * * * rsync -avz --delete --progress /var/www/ root@192.168.1.8:/var/www/

 

总结

    rsync是一个灵活、高效且功能强大的文件同步工具,适合各种文件传输需求。凭借增量同步、断点续传、跨平台支持3大高亮点,成为运维心中无可替代的“数据同步英雄”。1条命令解决备份、发布、迁移难题,安全合规与效率直接拉满!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

传统ftp无法满足高性能传输需求,如何寻找替代ftp的技术?

面对现在数据量的激增和网络安全威胁的不断演变,许多传统企业在用传统的FTP系统都面对着许多的安全和传输问题,企业面临的挑战是如何在保障数据安全的同时,提高文件传输的效率,因此原FTP系统已经逐步无法满足现代企业的需求。今天主要了解下企业需要替代FTP的原因,以及如何…

只需简单5步,Ansible脚本自动搭建AlwaysOn集群(已测试通过,可实际运行)

只需简单5步,Ansible脚本自动搭建AlwaysOn集群(已测试通过,可实际运行)之前已经介绍过这套脚本,请看下面↓ 一分钟搞定!CentOS 7.9上用Ansible自动化部署SQL Server 2019 注意: 这套ansible脚本不支持RHEL 7.X 和CentOS7.X系统! 这套ansible脚本不支持RHEL 7.X …

[AI/计算机硬件] 部署、训练AI大模型的显卡采购指南 [转]

序截至2025年,全球主流的AI大模型满血版的参数量均已突破百亿级,算力需求正以指数级飙升。特别是 DeepSeek 公司旗下的 R1 系列模型的问世,推动了很多中小企业部署私有化模型的需求。然而,面对动辄数十万上百万元的GPU采购成本,选错一块显卡可能让企业付出高昂的试错代价。…

清华DeepSeek手册第Ⅳ版《DeepSeek﹢智灵DeepResearch 让科研像聊天一样简单》

在数字化浪潮汹涌澎湃的当下,大模型如同一颗璀璨新星,强势崛起并迅速成为科技领域的焦点。从最初的理论探索到如今在各个行业的广泛应用,大模型正以惊人的速度重塑着我们的生活与工作模式。 它的出现不仅是人工智能技术发展的重大突破,更是推动经济增长、提升社会治理效能、…

[Vite] Code Splitting Vite

Code Splitting 打包构建中的代码拆分(Code Splitting)是一种优化技术,它将应用程序的代码拆分成多个小块(chunks),并在需要时按需加载这些代码块。这种技术的目的是提高应用程序的性能和用户体验,主要有以下几个原因:减少初始加载时间 当应用程序的代码被打包成一个单…

ArrayBlockingQueue的poll方法底层原理

一、ArrayBlockingQueue的poll方法底层原理 ArrayBlockingQueue 是 Java 并发包 (java.util.concurrent) 中的一个基于数组实现的有界阻塞队列。它的 poll() 方法是用于从队列中移除并返回队首元素的核心方法之一。与 take() 方法不同,poll() 方法在队列为空时不会阻塞,而是立…

java web前台技术的初步学习

今日学习了Java Web 基本开发技术前台技术,分为HTML和CSS HTML 是构建网页结构的基础,用于定义网页中的各种元素,如标题、段落、图片、链接、表格等。通过不同的标签组合,可以搭建出网页的基本框架。 常用标签示例 html示例页面这是一级标题这是一个段落。访问示例网站CSS …

蜜罐-Hfish

一、蜜罐简介 1.1蜜罐技术 ​ 蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击。从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所…

mybatis和mybatis-plus的依赖冲突错误

mybatis-plus底层依托于mybatis,集成了mybatis的依赖,二者都留着,一定程度上会产生版本冲突错误