`

rsync

阅读更多
rsync两种模式:远程shell模式和rsync守护进程模式;每种模式下又分为推和拉同步方式。语法如下。
Access via remote shell:
  Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Access via rsync daemon:
  Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
        rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
        rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
rsync 安装:
 源码可以编译可以看README这个文件
 yum install rsync -y
 
rsync的选项
都是常用选项,想全面可以man下就能把所以的选项显示出来。
-v, --verbose 详细模式输出
-q, --quiet 精简输出模式
-c, --checksum 打开校验开关,强制对文件传输进行校验
-r, --recursive 对子目录以递归模式处理
-R, --relative 使用相对路径信息
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
--backup-dir 将备份文件(如~filename)存放在在目录下。
-suffix=SUFFIX 定义备份文件前缀
-p, --perms 保持文件权限
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-D, --devices 保持设备文件信息
-t, --times 保持文件时间信息
-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间
--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
--delete 删除那些DST中SRC没有的文件
--delete-excluded 同样删除接收端那些被该选项指定排除的文件
--delete-after 传输结束以后再删除
-P 等同于 --partial 显示备份过程
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
-z, --compress 对备份的文件在传输时进行压缩处理
--exclude=PATTERN 指定排除不需要传输的文件模式
--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
--password-file=FILE 从FILE中得到密码
The --password-file option may only be used when accessing an rsync daemon.
 
推:
/usr/bin/rsync -auzvP /data0/web/* root@10.200.185.181:/data0/web/ 这个类似ssh一样,需要输入10.1.1.1的密码。
拉:
/usr/bin/rsync -auzvP root@10.200.185.181:/data0/web/ *  /data0/web/ 
上面的模式如果想实现自动化,目前我只知道使用expect,参照http://gabylinux.blog.51cto.com/1593644/891557 这个就能实现。
 
rsync -auzvP  --password-file=/path/passwd $localdir user::remotehost/remotedir
给出一个拉复制的例子
注意配置aa.com的模块,已经rsync同步使用的账户和对应密码,及密码权限
remotedir=user.aa.com
localdir=/www/aa.com/
rsync -avzuP --password-file=/data1/bash/rsync.pas rsync@8.10.6.10::aa.com/$remotedir $localdir
当然你可以把整个同步脚本写的更人性化,更完美点,也确实能做出来,在一个论坛上已经有这方面的代码了。
 
补充,rsync的原理方面内容,感谢netkiller老大。
 
基于ssh和基于daemon的区别在于,前者会登录到(用上图例子,主机1 --->主机2)对应端上开启rsync一个进程(所有你在rsync同步时候你会发现两个进程),把对应端口告知本地,建立通道。而后在是监听rsync请求,自己处理这个过程。

rsync的滚动哈希值的设计基于Adler32算法,大致过程如下。
1、如上图,由于主机2没有A文件内容,会执行一次完全同步。下次再在主机1上执行rsync的时候,主机1按固定大小将主机1分为多块,每块都计算出一个32位的滚动哈希值和一个128位的MD4(有些也用MD5),发给主机2一端。
2、主机2一端从位置0开始按的同样块大小的滚动哈希值,查找看是否命中主机1给的某个滚动哈希值,若匹配,则表明主机2文件中的这块内容与对应的主机1中的那块内容很可能是一致的,不更新,如果不一致,则更新对应内容。
3,主机2会追加对应主机1上没有的内容。

分享到:
评论

相关推荐

    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