`
jickcai
  • 浏览: 246978 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

rsync

    博客分类:
  • sh
 
阅读更多

一、rsync 概述

rsync 是类 unix 系統下的数据镜像备份工具,一款支持快速完全备份和增量备份的工具,支持本地复制,远程同步等,类似于 scp 命令;rsync 命令在同步文件之前要先登录目标主机进行用户身份认证,认证过后才能进行数据同步,身份认证方式取决于所使用的协议类型,rsync 一般使用两种协议进行数据同步;ssh 协议 和 rsync 协议。

二、rsync 特性

 
能更新整个目录树和文件系統
有选择的保留符号链接、硬链接、文件属性、权限、设备、及时间等。
对于安装来说,无特殊权限要求。
对于多个文件来说,文件传输效率高。
能用 ssh 或自定义端口作为传输入口端口
 

三、rsync 工作原理

 
既然涉及到数据同步,必要的两个概念是:源地址(文件),目标地址(文件),以及以哪一方为基准。例如,想让目标主机上的文件和本地文件保持同步,则是以本地文件为同步基准,将本地文件作为源文件推送到目标主机上。
 
rsync 在进行数据同步之前需要先进行用户身份验证,验证的方式取决于使用的链接方式:
ssh 登录验证方式:使用 ssh 协议作为基础进行用户身份验证,然后进行数据同步。
rsync 登录验证方式:使用 rsync 协议进行用户身份验证(非系統用户),然后进行数据同步。
 
数据同步方式:推送(上传)、拉取(下载)
 

四、rsync 实验演示

 
我们一般使用 rsync 来进行单向数据同步,因此我们需要确定一个基数,比如:两台服务器,一台 NFS 作为网站数据服务器(基准服务器),另一台专门作为 rsync 数据备份服务器。

4.1 ssh 协议数据同步:将 NFS 服务器数据同步备份到 rsync 服务器

 
环境:一台 NFS 服务器,一台 rsync 服务器。
在两台服务器上分别创建目录( /filesrc 、/filedst )
 
下行同步(下载)
格式:rsync -avz 服务器地址:/服务器目录/* /本地目录
示例:rsync -avz user@ip:/filesrc/* /filedst
 
-z:传输时进行压缩提高效率
-v:显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息
-P:显示文件传输的进度信息
-a --archive:归档模式,表示递归传输并保持文件属性,等同于"-rtopgDl"
-r --recursive:以递归模式拷贝目录
-R --relative:使用相对路径
-l --links:如果文件是软链接,则拷贝软链接本身而非软链接所指向的文件
-L --copy-links:如果文件是软链接,拷贝软链接指向的文件
-W --whole-file:拷贝文件时不进行增量检测
-t --times:保持 mtime 属性
rsync 默认用"quick check"算法决定哪些文件需要增量传输。此算法只比较文件的大小和 mtime,即使其它属性不同也会认为它们是完全相同的文件,从而不需要增量传输 建议任何时候都加上"-t",否则目标文件 mtime 会设置为系统时间,导致下次更新检查出 mtime 不同而导致增量传输无效
上行同步(上传)
格式:rsync -avz /本地目录/* 服务器地址:/服务器目录
示例:rsync -avz /filedst/* user@ip:/filesrc
 
 
注意:使用 root 在生产环境中不要使用 root 用户, 尽量使用单独创建的用户,减少权限溢出。
 
创建用来做数据同步的用户,并给予用户对目录的相应权限,一般是用 ACL 设置权限
useradd zhangsan
 
passwd zhangsan
setfacl -m u:zhangsan:rwx /filesrc
 
若要实现免密数据同步,只需要做好 ssh 密钥对登录即可(两台机器都要做)
ssh-keygen -t rsa -b 2048
 
ssh-copy-id user@IP

4.2 rsync 协议数据同步,将 NFS 服务器数据同步备份到 rsync 服务器

 
环境:一台 NFS 服务器,一台 rsync 服务器。
在两台服务器上分别创建目录( /filesrc 、/filedst )
 
 
1、搭建 rsync 服务(仅西需要在 NFS 服务器上搭建即可)
 
a.创建主配置文件( /etc/rsyncd.conf ) 默认没有自己创建
address = 10.145.81.212 #rsync 服务绑定
IP prot 873 #默认服务器端口 873
log file = /var/log/rsyncd.log #日志文件位置
pid file = /var/run/rsyncd.pid #进程号文件位置
[web] #共享名:用来连接是写在 url 上的,切记。
comment = web directory backup #共享描述语句
path = /filesrc #实际共享目录
read only = no #是否仅允许读取
dont conpress = *.gz *.bz2 #哪些文件不进行压缩
auth users = zhangsan #登录用户名(非系統用户,需要自己创建)
secrets file = /etc/rsyncd_users.db #认证账户密码文件(需要自己创建-同上)
 
b.创建认证所需要的密码文件
# vim /etc/rsyncd_users.db
 
zhangsan:123456
# chmod 600 /etc/rsyncd_users.db #必须修改权限,否则登录报错
 
c.启动服务
# rsync --daemon # netstat -tunpl | grep 873
 
 
d.设置映射用户对共享目录有权限
# setfacl -m u:nobady:rwx /filesrc
注意:关闭服务可使用 kill 命令,但偶尔会造成服务结束但进程配置文件不被删除的问题,若遇到此类问题可以手动删除,再启动则正常(建议自己写一个 rsync 的服务管理脚本)
 
 
下行同步(下载)
格式:rsync -avz rsync://用户名@服务器地址/共享模块名 /本地目录
示例:rsync -avz rsync://zhangsan@IP/web /filedst
拓展 --delete :删除本地比服务器多出来的文件(源地址没有,目标地址有的删掉)
rsync -avz --delete rsync://zhangsan@IP/web /filedst
 
上行同步(上传)
格式:rsync -avz /本地目录/* rsync://用户名@服务器地址/共享模块名
示例:rsync -avz /filedst/* rsync://zhagnsan@IP/web
 
rsync 协议的免密可以借助一个环境变量来实现

 

# export RSYNC_PASSWORD=虚拟用户密码(客户端执行)

<iframe style="display: none !important;"></iframe>

分享到:
评论

相关推荐

    aix下rsync安装包

    在IT领域,尤其是在系统管理与数据同步操作中,`rsync`是一个不可或缺的工具。它在各种操作系统上广泛使用,包括Linux和Unix-like系统,如AIX。本篇文章将详细介绍在AIX环境下如何安装和使用`rsync`,以及它在跨平台...

    rsync备份海量文件时占用大量内存的解决方法

    linux发行版中大多都自带rsync,不过版本比较低,一般都是2.6.X 在2.X的版本中,rsync备份时都是先列表再备份(添加或者删除),在处理大量文件时,会耗费比较多的内存。 备份的时候,rsync扫描到的每个文件(目录也...

    linux 下rsync文件夹同步配置

    ### Linux下rsync文件夹同步配置详解 #### 引言 在Linux环境下,rsync工具因其高效、稳定、灵活的特点,被广泛应用于文件备份、数据迁移以及文件夹同步等场景。本文将详细介绍如何在Linux系统中配置rsync进行...

    cygwin 下 rsync-3.0.8安装及使用说明

    Rsync是另一个非常重要的工具,它用于高效地同步和备份文件。在本教程中,我们将深入探讨如何在Cygwin环境下安装rsync 3.0.8版本,并学习其基本用法。 首先,我们需要获取`rsync-3.0.8`的安装包。这个过程可以通过...

    rsync常见错误及解决方法

    rsync常见错误及解决方法 rsync是一款功能强大的远程数据同步工具,它可以在不同的主机之间同步文件和目录。但是,在使用rsync时,可能会遇到各种错误,本文将总结一些常见的rsync错误及其解决方法。 一、@ERROR: ...

    ranger-2.1.0-usersync.tar.gz

    在“ranger-2.1.0-usersync.tar.gz”这个压缩包中,我们关注的是Ranger的用户同步工具(Ranger Usersync),这是一个关键组件,用于将组织的用户和组信息从身份提供者(如Active Directory或LDAP)同步到Hadoop集群...

    rsync命令教程 在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项。

    Rsync命令详解 在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项。 一、rsync的六种工作模式: ...

    rsync命令详细解答

    ### rsync命令详解 #### 一、概述 `rsync`是Linux系统中一个非常强大的文件同步工具,它能够高效地在本地或者远程之间进行文件和目录的同步操作。相较于传统的`scp`命令,`rsync`具有更快的传输速度,并且支持增量...

    Ubuntu Server Rsync服务端与Windows cwRsync客户端实现数据同步

    ### Ubuntu Server Rsync服务端与Windows cwRsync客户端实现数据同步 #### 1. Rsync简介 Rsync 是一个开源的、高效的文件同步工具,它主要用于在本地或远程主机之间同步文件和目录。Rsync 通过只传输源文件与目标...

    一键安装Rsync脚本

    **一键安装Rsync脚本** 是一个为了简化Rsync服务端环境部署而设计的实用工具。Rsync(Remote Sync)是一种高效、强大的文件同步和备份工具,广泛应用于系统管理员之间同步数据、备份服务器或者在多台机器间进行文件...

    rhel5之rsync服务配置

    【RHEL5中的rsync服务配置】 RHEL5操作系统中,rsync是一个强大的文件同步工具,常用于在本地或远程系统之间同步数据。本篇将详细介绍如何配置rsync服务。 首先,确认RHEL5系统已经预装了rsync软件包。rsync服务的...

    rsync-3.0.6.tar.gz

    rsync是Linux操作系统中的一款强大的文件同步工具,其版本为3.0.6。这个工具以其高效、轻量级的特点而备受青睐,尤其适合在资源有限的环境中进行数据同步。rsync不仅支持本地文件和目录的同步,还能跨网络同步不同...

    rsync_架设手册

    ### rsync架设手册 #### 1. 什么是rsync? rsync是一个高效且功能强大的文件传输工具,专为Unix类系统设计。它利用所谓的“rsync算法”,能够迅速地在本地与远程服务器间同步文件,仅传输文件差异部分,大大节省了...

    rsync+inotify实现服务器之间文件实时同步

    rsync+inotify实现服务器之间文件实时同步 rsync+inotify是一种实现服务器之间文件实时同步的解决方案,该方案可以实时监控文件系统的变化,并将变化同步到备份服务器中,保障数据的一致性和实时性。 rsync是一种...

    linux下Rsync+sersync实现文件数据实时同步

    `Rsync`和`sersync`是两个常用的工具,它们能够有效地帮助我们完成这个任务。本文将深入探讨这两个工具的工作原理、配置方法以及如何结合使用来实现实时同步。 **Rsync** `Rsync`是一个强大的、快速的文件同步和...

    window Git完美使用rsync.assets.7z

    在Windows环境下,Git和rsync的结合使用可以提供高效、灵活的版本控制和文件同步解决方案。这个名为"window Git完美使用rsync.assets.7z"的压缩包可能包含了一套详细的指南,帮助用户在Windows上配置和利用这两个...

    rsync同步的艺术

    "rsync同步的艺术" rsync 是一个功能强大的文件同步工具,经常用于服务器之间的文件同步和备份。它能够确保文件的内容、权限和时间戳保持一致。下面是 rsync 的一些重要知识点: 1. rsync 的基本使用:rsync 可以...

    RSYNC的架构手册

    RSYNC是一种强大的、高效的数据同步工具,常用于备份和镜像任务。它的架构设计使得它在数据传输过程中能实现快速同步,因为RSYNC利用了差异算法,只传输文件的改变部分,而不是整个文件。 在RSYNC的架构中,主要...

Global site tag (gtag.js) - Google Analytics