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. 数据库操作类——C#

    整理数据库操作类以便取用: using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...

  2. j.u.c系列(06)---之锁条件:Condition

    写在前面 在没有Lock之前,我们使用synchronized来控制同步,配合Object的wait().notify()系列方法可以实现等待/通知模式.在Java SE5后,Java提供了Lock接 ...

  3. Regex.Split

    private static List<int> GetThemeIds(string themeList) { const string split = "!===!" ...

  4. android tesseract-ocr实例教程(包含中文识别)(附源码)

    (转载请注明出处:http://blog.csdn.net/buptgshengod) 1.介绍     快过年了,博主的新应用-屏幕取词之了老花镜的编码工作也在紧锣密鼓的进行中.下面分享一下这个应用 ...

  5. 关于 C 语言,我喜欢和讨厌的十件事

    前言:最近有个家伙抱怨道“为什么我还要再用C?”-虽然我不同意他的说法,但至少他随口提到如果你“在一台拇指大小的电脑”上编程,或者为一门语言写引导程序,那么可以用C语言.要我说,写设备驱动,或者特定平 ...

  6. RSS介绍、RSS 2.0规范说明和示例代码

    RSS是一种消息来源格式规范,用以发布经常更新资料的网站,例如博客.新闻的网摘.RSS文件,又称做摘要.网摘.更新.频道等,包含了全文或节选文字,再加上一定的属性数据.RSS让发布者自动发布信息,也使 ...

  7. 开源 java CMS - FreeCMS2.2 菜单管理

    项目地址:http://www.freeteam.cn/ 菜单管理 FreeCMS在设计时定位于面向二次开发友好,所以FreeCMS提供了菜单管理功能.二次开发者能够自由添加新的功能菜单到FreeCM ...

  8. What is OpenOCD?

    About OpenOCD was created by Dominic Rath as part of a 2005 diploma thesis written at the University ...

  9. [廖雪峰] Git 分支管理(2):Bug 分支

    软件开发中,bug 就像家常便饭一样.有了 bug 就需要修复,在 Git 中,由于分支是如此的强大,所以,每个 bug 都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除. 当你 ...

  10. BootstrapClassloader ExtClassloader AppClassloader

    http://www.importnew.com/26269.html   import java.net.URL; class test9 { public static void main(Str ...