1、什么是rsync?
-rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。

-第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。

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

-支持匿名传输,以方便进行网站镜象。

2、本人操作的时候使用的具体的环境是:客户端:Mac+服务器端:Ubuntu
iOS系统和Ubuntu是默认已经安装好rsync环境的,客户端可以直接打开 终端,使用rsync的相关命令就能进行操作;Ubuntu在使用rsync的时候需要先通过一系列的设置来打开rsync的服务。

其他环境下关于rsync的安装和配置可参考以下链接:

https://rsync.samba.org

https://rsync.samba.org/ftp/rsync/rsyncd.conf.html

https://rsync.samba.org/ftp/rsync/

3、关于服务器端Ubuntu下的rsync的相关配置
主要是创建配置文件 rsyncd.conf列表内容
1、 修改/etc/default/rsync,让rsync服务在开机的时候启动:
$ sudo vim /etc/default/rsync

将RSYNC_ENABLE=false改为RSYNC_ENABLE=true

2、创建并修改rsyncd.conf,缺省安装中是没有这个文件的
先创建并编辑配置文件:

$ sudo cp /usr/share/doc/rsync/examples/rsyncd.conf /etc

$ sudo vim /etc/rsyncd.conf

3、去掉
log file=/var/log/rsyncd
pid file=/var/run/rsyncd.pid
syslog facility=daemon

前面的注释符号#

4、修改rsync需要同步的路径:
path = /var/www/pub
(修改成客户端需要同步到的服务器端的的路径即可)

5、修改rsync使其可读可写:
read only = false

6、修改rsync用户:

auth users = rsync_user
secrets file = /etc/rsyncd.secrets

7、创建rsync用户密码文件:

sudo touch /etc/rsyncd.secrets

使其内容如下(例子):

rsync_user:rsync_password

8、修改用户密码文件权限:

$ sudo chmod 0600 /etc/rsyncd.secrets

9、启动rsync

$ sudo /etc/init.d/rsync start

4、将客户端相关文件夹中的内容同步到服务器端设置路径下的相关命令的使用
$ rsync -avz local_filename server_username@server_ip:server_filename

5、rsync的相关命参数
-v,--verbose //详细模式输出;

-a,--archive //归档模式,表示以递归的方式传输文件,并保持所有文件属性不变,相当于使用了组合参数-rlptgoD;

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

-l, --links//保留软链结;

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

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

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

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

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

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

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

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

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

6、rsync六种不同的工作模式:
1.拷贝本地文件,将/home/coremail目录下的文件拷贝到/cmbak目录下

$ rsync -avSH /home/coremail/ /cmbak/

2.拷贝本地机器的内容到远程机器

$ rsync -av /home/coremail/ 192.168.11.12:/home/coremail/

3.拷贝远程机器的内容到本地机器

$ rsync -av 192.168.11.11:/home/coremail/ /home/coremail/

4.拷贝远程rsync服务器(daemon形式运行rsync)的文件到本地机

$ rsync -av root@172.16.78.192::www /databack

5.拷贝本地机器文件到远程rsync服务器(daemon形式运行rsync)中。当DST路径信息包含”::”分隔符时启动该模式

$ rsync -av /databack root@172.16.78.192::www

6.显示远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可

$ rsync -v rsync://192.168.11.11/data

7、rsync配置文件说明:
cat/etc/rsyncd.conf //内容如下

port = 873 //端口号

uid = nobody //指定当模块传输文件的守护进程UID

gid = nobody //指定当模块传输文件的守护进程GID

use chroot = no //使用chroot到文件系统中的目录中

max connections = 10 //最大并发连接数

strict modes = yes //指定是否检查口令文件的权限

pid file = /usr/local/rsyncd/rsyncd.pid //指定PID文件

lock file = /usr/local/rsyncd/rsyncd.lock //指定支持max connection的锁文件,默认为/var/run/rsyncd.lock

motd file = /usr/local/rsyncd/rsyncd.motd //定义服务器信息的,自己写 rsyncd.motd 文件内容

log file = /usr/local/rsyncd/rsync.log //rsync 服务器的日志

log format = %t %a %m %f %bsyslog facility = local3timeout = 300
[conf] //自定义模块

path = /usr/local/nginx/conf //用来指定要备份的目录

comment = Nginx confignore errors//可以忽略一些IO错误

read only = no //设置no,客户端可以上传文件,yes是只读

write only = no //no为客户端可以下载,yes 不能下载

hosts allow = 192.168.2.0/24 //可以连接的IP

hosts deny = * //禁止连接的IP

list = false //客户请求时,使用模块列表

uid = root

gid = root

auth users = backup //连接用户名,和linux系统用户名无关系

secrets file = /etc/rsyncd.pass //验证密码文件

RSync实现文件备份同步详解   http://www.linuxidc.com/Linux/2014-09/106967.htm

利用inotifywait监控主机文件和目录 http://www.linuxidc.com/Linux/2013-03/81075.htm

利用inotify+rsync实现Linux文件批量更新 http://www.linuxidc.com/Linux/2012-01/52132.htm

inotify-tools+rsync实时同步文件安装和配置 http://www.linuxidc.com/Linux/2012-06/63624.htm

rsync同步完整配置 http://www.linuxidc.com/Linux/2013-06/85781.htm

CentOS 6.5下Rsync远程同步 http://www.linuxidc.com/Linux/2014-05/101084.htm

Linux文件夹对比并提取的差分文件技巧-rsync的妙用 http://www.linuxidc.com/Linux/2016-02/128307.htm

Rsync 的详细介绍请点这里
Rsync 的下载地址请点这里

使用rsync实现客户端与服务器端的文件同步与传送,重点是原理和参数解释的更多相关文章

  1. rsync+sersync+inotify实现服务器间文件同步之一

    rsync+sersync+inotify实现服务器间文件同步之一:rsync安装配置 2013年12月14日 ⁄ Linux管理, 服务器集群技术 ⁄ 共 4925字 ⁄ rsync+sersync ...

  2. rsync从linux到linux的文件同步备份

    rsync从linux到linux的文件同步备份 一.环境 需要备份文件的服务器(服务器端):192.168.1.201 (RHEL 5) 接收备份文件的服务器(客户端):192.168.1.202 ...

  3. 在vs code中使用ftp-sync插件实现客户端与服务器端代码的同步

    在vs code中使用ftp-sync插件实现客户端与服务器端代码的同步 下载安装 vscode-ftp-sync 插件. 安装方法1. Ctrl+Shift+P 输入 ext install [插件 ...

  4. Rsync:一个很实用的文件同步命令

    sync是Linux系统下的文件同步和数据传输工具,可用于同步文件.代码发布 1.安装. yum install -y xinetd yum insatll -y rsync 2.配置 打开rsync ...

  5. Rsync 3.1.0 发布,文件同步工具

    文件同步工具Rsync 3.1.0发布.2013-09-29 上一个版本还是2011-09-23的3.0.9 过了2年多.Rsync基本是Linux上文件同步的标准了,也可以和inotify配合做实时 ...

  6. 利用cwRsync客户端将Windows下文件同步到Linux

    这里不描述Linux服务端安装配置rsync服务的过程,有需要可以在网络上查找相关教程. 1.安装cwRsync客户端下载地址:http://itefix.no/cwrsync/下载文件cwRsync ...

  7. centos7安装rsync及两台机器进行文件同步

    安装及配置 yum -y install rsync #启动rsync服务 systemctl start rsyncd.service systemctl enable rsyncd.service ...

  8. CentOS7通过rsync+crontab实现两台服务器文件同步

    centos7系统中已经默认安装rsync 1:主服务器配置 (1)修改rsyncd.conf 配置文件 [root@localhost app]# vi /etc/rsyncd.conf motd ...

  9. rsync+inotify 实现服务器之间目录文件实时同步(转)

    软件简介: 1.rsync 与传统的 cp. tar 备份方式相比,rsync 具有安全性高.备份迅速.支持增量备份等优点,通过 rsync 可 以解决对实时性要求不高的数据备份需求,例如定期的备份文 ...

随机推荐

  1. 002.Rsync详细配置项

    一 相关参数 全局参数 在文件中[module]之前的所有参数都是全局参数,当然也可以在全局参数部分定义模块参数,这时候该参数的值就是所有模块的默认值. port 指定后台程序使用的端口号,默认为87 ...

  2. 002.DNS-BIND简介

    一 Linux-BIND服务器简介 Bind是Berkeley Internet Name Domain Service的简写,它是一款实现DNS服务器的开放源码软件.已经成为世界上使用最为广泛的DN ...

  3. [python]接口签名

    一个主机中的数据要通过外网发送数据给另外一个主机,为了保证接口安全,需要对接口进行签名,由于重放攻击貌似对这种接口无效,所以没有加入时间戳 直接放代码: #!/usr/bin/env python # ...

  4. NOI.AC NOIP模拟赛 第五场 游记

    NOI.AC NOIP模拟赛 第五场 游记 count 题目大意: 长度为\(n+1(n\le10^5)\)的序列\(A\),其中的每个数都是不大于\(n\)的正整数,且\(n\)以内每个正整数至少出 ...

  5. delete void pointer

    delete void pointer是否会有内存泄漏? 看下面一个简单例子 class Test{ public: Test(){ printf ("constructor\n" ...

  6. 2015 年度新增开源软件排名 TOP 100 - 开源中国社区

    2015 年度新增开源软件排名 TOP 100 - 开源中国社区 39.ABTestingGateway http://www.oschina.net/news/69808/2015-annual-r ...

  7. LPC-Link-II Rev C JTAG

  8. oracle 删除字段中空格

    update  sales_report set region =  REGEXP_REPLACE(region,  '( ){1,}', '')

  9. JAVA 对象序列化(二)——Externalizable

    Java默认的序列化机制非常简单,而且序列化后的对象不需要再次调用构造器重新生成,但是在实际中,我们可以会希望对象的某一部分不需要被序列化,或者说一个对象被还原之后,其内部的某些子对象需要重新创建,从 ...

  10. delphi下实现ribbon界面的方法(一)

    http://www.cnblogs.com/shanmx/archive/2011/12/04/2275213.html