资源

Rsync官网:http://rsync.samba.org/

简介

Rsync(remote sync)是类unix系统下的远程(LAN/WAN)数据镜像备份工具。可以实现Linux与linux、linux与windows以及windows与windows之间的数据同步。Windows平台下比较知名的软件版本为cwRsync和Sync2NAS等。

特性

快速:使用“rsync演算法”来实现本地和远程主机间的文件同步。第一次同步时rsync会复制全部内容,以后就只传输文件的差异部分。在传输过程中还可以对数据进行压缩及解压缩操作。

安全:可以使用scp、ssh等方式来传输文件,也可以直接使用socket连接。

实例

Linux(以centos6.3为例)

======================

1.安装

直接利用yum来安装rsync,安装完后的文件路径可以通过rpm -ql rsync来查询。

[root@alex ~]# yum install rsync

[root@alex ~]# rpm -qa | grep rsync

rsync-3.0.6-9.el6_4.1.x86_64

[root@alex ~]# rpm -qal rsync

/etc/xinetd.d/rsync

/usr/bin/rsync

/usr/share/doc/rsync-3.0.6

/usr/share/doc/rsync-3.0.6/COPYING

/usr/share/doc/rsync-3.0.6/NEWS

/usr/share/doc/rsync-3.0.6/OLDNEWS

.....省略若干行......

2.配置

Rsync的配置文件为/etc/rsyncd.conf,默认情况下没有(这个可以有),需要手动创建。以下是在我主机上的一个配置实例。

strict modes = yes     #是否检查口令文件的权限
use chroot = no
port = 873       #默认端口873
log file = /var/log/rsyncd.log    #日志记录文件
pid file = /var/run/rsync/rsyncd.pid   #运行进程ID写入文件
[aliyun]        #模块名,在client端的rsync参数中需要指定出该名称
max connections = 5          #客户端最大连接数,默认为0(无限制)
uid = root         #指定该模块传输文件时守护进程应该具有的uid
gid = root      #指定该模块传输文件时守护进程应该具有的gid
path = /usr/local/nginx/html      #要同步的目录
read only = no     #no:客户端可以上传文件,yes:禁止上传
write only = no       #no:客户端可以下载文件,yes:不能下载
hosts allow = *        #指定可以连接的主机,*为任何主机
auth users = root       #认证该模块需要的用户,没有这一行则表示匿名用户
secrets file = /etc/rsyncd.pass      #认证用户口令文件

真实配置的时候别把后面的这些注释也给加上了,rsync不认得这些带#的注释。关于/etc/rsync.conf的配置还有其它一些可选的参数,这里就不一一列举了。上面指定了认证用户口令文件,所以还得新建这个文件,并写入“用户名:口令”。

[root@alex ~]# vim /etc/rsyncd.pass

root:xxxx

注意,密码文件的权限是由rsyncd.conf里面的参数strict modes = yes/no来决定的。

3.启动

Rsync有多种启动方式,这里给出由xinetd启动和直接启动两种方式。

方式一:xinetd

相当于把rsync交给xinetd(新一代的网络守护进程服务程序,又叫超级internet服务器)来管理,前进是先安装好xinetd。在/etc/xinetd.d/目录下有rsync的配置文件,默认如下:

[root@alex ~]# cat /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
#       allows crc checksumming etc.
service rsync
{
        disable = yes #这里默认是关闭的,也就是不受xinetd控制,需要将它改成no
        flags           = IPv6
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}

然后启动xinetd就ok了。

[root@alex ~]# service xinetd start             [ok]

方式二:直接启动二进制程序

[root@alex ~]# /usr/bin/rsync --daemon

rsync监听的是873端口,通过lsof或者netstat都可以查询端口的监听状态。

[root@alex ~]# lsof -i:873

COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME

rsync   28123 root    4u  IPv4 1404836      0t0  TCP *:rsync (LISTEN)

rsync   28123 root    5u  IPv6 1404837      0t0  TCP *:rsync (LISTEN)

Win7上的实现

=============

1.安装

从网上下载cwRsync客户端后直接点击安装,中途需要输入帐户和密码,这个帐户只是作为安装运行cwRsync需要,别无它用。要想成功连接到nginx上的rsync服务器还是得依靠/etc/rsyncd.conf中设置的帐户。

cwRsync默认的安装路径为C:\Program Files (x86)\ICW。

2.启动

现在可以尝试着连接linux端的rsync服务器了。进入C:\Program Files (x86)\ICW\Bin\目录,里面存放着各种可执行程序,其中就包括rsync.exe主程序。在利用rsync.exe建立具体的连接之前可以先参考一下文章结尾的参数说明,其中标记为红色的为常用参数。

(1)上传同步

例如,把本地D:\rsync\目录下的文件同步到nginx端aliyun模块指定的同步目录(/usr/locl/nginx/html)中。

打开cmd,进入到C:\Program Files (x86)\ICW中,执行以下命令。

rsync.exe -vzrtopg --progress --delete /cygdrive/d/rsync/ root@xx.xx.xx.xx::aliyun

有4点需要注意的地方。

A.因为cwRsync不认识本地磁盘,所以本地目录不能写成D:\rsync\这样的形式,而是写成/cygdrive/d/rsync/。

B./cygdrive/d/rsync后面带不带‘/’效果是不一样的,如果带了‘/’表示不创建目录,只同步rsync目录下的内容;如果没有带则会相应地创建rsync这个目录。

C.root是在/etc/rsync.conf中设置的认证帐户,这个帐户并不需要在linux中真实存在,也就是说不需要通过useradd来创建这个帐户。

D.root@xx.xx.xx.xx后面是接双冒号“::”还是接单冒号“:”效果是完全不一样的。双冒号后面是接在/etc/rsyncd.conf中定义的模块名(aliyun),而单冒号是接路径,所以不要搞错了哟。

执行上面这条命令后,会提示输入密码,正确输入密码后就可以同步了。为了不让每一次同步都变得这么繁琐,我们完全可以写一个批处理文件(upload.bat)。

@ECHO ON
c:
cd "C:\Program Files (x86)\ICW\Bin"
rsync.exe --password-file=rsync.pwd -vzrtopg --progress --delete /cygdrive/d/rsync/ root@xx.xx.xx.xx::aliyu

手动输入密码这一步已经由--password-file=rsync.pwd取代了,rsync.pwd是放置密码的文件。注意,它与linux端提到的那个/etc/rsync.pwd不同,这里只需要写入密码即可。利用ICW/Bin目录下的chmod.exe将权限设置为600,否则会出错。

(2)下载同步

下载同步很简单,把上传同步中的本地路径放在后面即可。

rsync.exe -vzrtopg --progress --delete root@xx.xx.xx.xx::aliyun  /cygdrive/d/rsync/

参数说明

-v, --verbose  详细模式输出

-q, --quiet    精简输出模式

-c, --checksum 打开校验开关,强制对文件传输进行校验

-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD

-r, --recursive 对子目录以递归模式处理

-R, --relative 使用相对路径信息

-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。

--backup-dir 将备份文件(如~filename)存放在在目录下。

-suffix=SUFFIX 定义备份文件前缀

-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)

-l, --links 保留软链结

-L, --copy-links 想对待常规文件一样处理软链结

--copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结

--safe-links 忽略指向SRC路径目录树以外的链结

-H, --hard-links 保留硬链结

-t, --times 保持文件时间信息

-o, --owner 保持文件属主信息

-p, --perms 保持文件权限

-g, --group 保持文件属组信息

-D, --devices 保持设备文件信息

-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间

-n, --dry-run现实哪些文件将被传输

-W, --whole-file 拷贝文件,不进行增量检测

-x, --one-file-system 不要跨越文件系统边界

-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节

-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步

--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息

-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件

--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件

--delete 删除那些DST中SRC没有的文件

--delete-excluded 同样删除接收端那些被该选项指定排除的文件

--delete-after 传输结束以后再删除

--ignore-errors 及时出现IO错误也进行删除

--max-delete=NUM 最多删除NUM个文件

--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输

--force 强制删除目录,即使不为空

--numeric-ids 不将数字的用户和组ID匹配为用户名和组名

--timeout=TIME IP超时时间,单位为秒

-I, --ignore-times 不跳过那些有同样的时间和长度的文件

--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间

--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0

-T --temp-dir=DIR 在DIR中创建临时文件

--compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份

-P 等同于 --partial

--progress 显示备份过程

-z, --compress 对备份的文件在传输时进行压缩处理

--exclude=PATTERN 指定排除不需要传输的文件模式

--include=PATTERN 指定不排除而需要传输的文件模式

--exclude-from=FILE 排除FILE中指定模式的文件

--include-from=FILE 不排除FILE指定模式匹配的文件

--version 打印版本信息

--address 绑定到特定的地址

--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件

--port=PORT 指定其他的rsync服务端口

--blocking-io 对远程shell使用阻塞IO

-stats 给出某些文件的传输状态

--progress 在传输时现实传输过程

--log-format=formAT 指定日志文件格式

--password-file=FILE 从FILE中得到密码

--bwlimit=KBPS 限制I/O带宽,KBytes per second

-h, --help 显示帮助信息

sync实现windows与nginx主机端文件同步(参考文档)的更多相关文章

  1. phpmyadmin-您可能正在上传很大的文件,请参考文档来寻找解决方法

    phpmyadmin-您可能正在上传很大的文件,请参考文档来寻找解决方法   实这个很简单的只要更改php.ini里三个配置即可.(见下面加粗部分,改成你自己的需求即可) ; Maximum allo ...

  2. IIS下不能下载文件的docx文档,XLSX文档的设置方法(转)

    IIS下不能下载文件的docx文档,XLSX文档的设置方法 Office 2007的的界面风格默认格式中都是.DOCX,XLSX,PPTX等等后缀,连结中包含此类文件时,界面风格默认什么打不开的其实只 ...

  3. 在物理 Data Guard 中对异构主备系统的支持 (文档 ID 1602437.1)

    Data Guard中主数据库与物理备用数据库(Redo Apply)之间可以有什么差别?本说明针对重做应用和 Oracle Data Guard 12 发行版 1 进行了更新.它适用于 Oracle ...

  4. 【已解决】phpMyAdmin中导入mysql数据库文件时出错:您可能正在上传很大的文件,请参考文档来寻找解决办法

    期间,用phpMyAdmin去导入90M左右的mysql数据库文件时出错: 您可能正在上传很大的文件,请参考文档来寻找解决方法. [解决过程] 1.很明显,是文件太大,无法导入.即上传文件大小有限制. ...

  5. Delphi 使用CHM文件制作系统帮助文档(上下文感知帮助的制作)

    一.基础知识简介         使用帮助提示窗口或状态栏只能提供简单.单一的帮助,无法对某一模块或应用程序整体提供系统的 帮助,因此运行Windows应用程序,需要帮助时一般都可以通过执行帮助菜单获 ...

  6. python 写了一个批量拉取文件进excel文档

    路径如: C:\\Users\\huaqi\\Desktop\\信息收集 “信息收集”目录下有以下子目录:[技术,客服,运营,行政] “技术”目录下有以下子文件:[小白.txt,小红.txt,小黑.t ...

  7. windows上zeal安装和使用--离线API文档

    1.官网:https://zealdocs.org/download.html#windows 2.github:https://github.com/zealdocs/zeal 3.下载:可下载安装 ...

  8. WebAPI使用多个xml文件生成帮助文档

    一.前言 上篇有提到在WebAPI项目内,通过在Nuget里安装(Microsoft.AspNet.WebApi.HelpPage)可以根据注释生成帮助文档,查看代码实现会发现是基于解析项目生成的xm ...

  9. WebAPI使用多个xml文件生成帮助文档(转)

    http://www.cnblogs.com/idoudou/p/xmldocumentation-for-web-api-include-documentation-from-beyond-the- ...

随机推荐

  1. Nifi简介及核心概念整理

    简介 Apache NiFi 是一个易于使用.功能强大而且可靠的数据拉取.数据处理和分发系统,用于自动化管理系统间的数据流. 它支持高度可配置的指示图的数据路由.转换和系统中介逻辑,支持从多种数据源动 ...

  2. Vuex源码分析(转)

    当我们用vue在开发的过程中,经常会遇到以下问题 多个vue组件共享状态 Vue组件间的通讯 在项目不复杂的时候,我们会利用全局事件bus的方式解决,但随着复杂度的提升,用这种方式将会使得代码难以维护 ...

  3. 点亮一个LED之参数传递规则

    1 说明 实验平台: JZ2440 CPU:       S3C2440 2 ARM-THUMB Procedure Call Standard(ATPCS: ARM-Thumb过程调用标准) 图1 ...

  4. Codeforces 556A:Case of the Zeros and Ones

    A. Case of the Zeros and Ones time limit per test 1 second memory limit per test 256 megabytes input ...

  5. TensorFlow2 Part3:动态模型建立与训练

    Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow.Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计.调试.评估.应用和可视化 [ ...

  6. 八十一、SAP中的ALV的简介(ABAP List Viewer)

    一.ALV是SAP中的一个表格,全称为:ABAP List Viewer或者SAP List Viewer,就是可视化表格. ALV是SAP系统中心的列表标准,可以在ABAP程序中进行报表输出.除去列 ...

  7. Node.js NPM 介绍

    章节 Node.js NPM 介绍 Node.js NPM 作用 Node.js NPM 包(Package) Node.js NPM 管理包 Node.js NPM Package.json NPM ...

  8. 实验3- 熟悉常用的 HBase 操作

        石家庄铁道大学信息科学与技术学院               实验报告 2018年----2019年  第一学期                       题目:  熟悉常用的 HBase ...

  9. P 1022 D进制的A+B

    转跳点 :

  10. P 1019 数字黑洞

    转跳点: