一、rsync简介

rsync全称remote sync,是一种更高效、可以本地或远程同步的命令,之所以高效是因为rsync会对需要同步的源和目的进度行对比,只同步有改变的部分,所以比scp命令更高效,但是rsync本身是一种非加密的传输,可以借助-e选项来设置具备加密功能的承载工具进行加密传输。

二、rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。

优点:

安全性高

备份迅速,使用同步算法,只比较变化

支持增量备份

保存源目录整个目录树和文件系统

保持源文件的权限、时间、软硬连接等

无需特使权限即可安装

优化流程和比较高的文件传输效率。

多样方式来传输文件。

支持匿名运行,方便网站镜像。

与scp相比,rsync传输速度远在scp之上。(局域网测试,rsync是scp的20倍)

解决对实时性要求不高的数据备份需求

不足:

同步数据,需要扫描所有文件进行对比,才进行差量传输。如果文件数量达到百万甚至千万级,扫描文件对比文件将非常耗时,降低了rsync效率。

rsync不能实时地区监测、同步数据。虽然可以通过守护进程方式触发同步,但两次动作间有时间差,导致数据不一致,无法应对出现故障时完全恢复数据。


三、实战操作如下:

系统环境:Centos 6.9

服务端IP:192.168.8.7

客户端IP:192.168.8.8

1)安装rsync,执行以下命令(这里采用yum安装,也可以选择源码包安装)

[root@localhost ~]# yum -y install rsync

1

2)配置Rsync(服务端)

安装完毕之后,配置rsync配置文件,如果/etc/rsyncd.conf不存在,则需要手动创建一个rsyncd.conf配置文件,

vim /etc/rsyncd.conf配置内容为如下:

pid file = /var/run/rsyncd.pid //指定pid文件

lock file = /var/run/rsyncd.lock //指定lock文件

log file = /var/log/rsyncd.log //指定日志文件

motd file = /etc/rsyncd.Motd //指定欢迎消息文件

transfer logging = yes //开启日志

log format = %t %a %m %f %b //日志格式

syslog facility = local3 //日志工具

[backup] //自定义模块名

uid = root //Rsync以什么用户身份运行

gid = root //Rsync以什么用户组身份运行

port = 873 //指定Rsync端口

comment = rsync //描述信息

use chroot = no //是否允许改变目录

max connections = 10 //最大连接数

read only = yes //只读

timeout = 300 //超时时间

path = /data/test //同步路径

secrets file = /etc/rsync.pass //密码存放路径

hosts allow = 192.168.8.0/24 //允许的IP段(白名单)

2

3)创建Rsync同步密匙文件

手动编辑vim /etc/rsync.pass,内容如下

xiaoqi //用户名

123456 //密码

3

[root@localhost ~]# chmod 600 /etc/rsync.pass //设置权限

[root@localhost ~]# mkdir -p /data/test //创建同步目录

4)启动Rsync服务

[root@localhost ~]# rsync --daemon --config=/etc/rsyncd.conf //后台运行rsync服务

4

5)配置客户端,安装rsync命令

[root@localhost ~]# yum -y install rsync

5

6)创建rsync密匙文件

vim /etc/rsync.pass,内容如下

123456

6

7)测试

在服务端创建测试文件

[root@localhost test]# touch test.txt

7

在客户端执行以下命令

[root@localhost ~]# rsync -aP --delete xiaoqi@192.168.8.7::backup /data/test --password-file=/etc/rsync.pass

8

注:/data/test为客户端的目录,@前test是认证的用户名;IP后面backup为rsync服务器端的模块名称,/etc/rsync.pass为密匙认证文件

四、rsync命令

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的"rsync算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。

语法

rsync [OPTION]... SRC DEST

rsync [OPTION]... SRC [USER@]host:DEST

rsync [OPTION]... [USER@]HOST:SRC DEST

rsync [OPTION]... [USER@]HOST::SRC DEST

rsync [OPTION]... SRC [USER@]HOST::DEST

rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]

对应于以上六种命令格式,rsync有六种不同的工作模式:

1)拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:rsync -a /data /backup

2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:rsync -avz *.c foo:src

3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:rsync -avz foo:src/bar /data

4)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:rsync -av root@192.168.8.7::www /databack

5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:rsync -av /databack root@192.168.8.7::www

6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://192.168.8.7/www

选项

-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 保留硬链结。

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

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

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

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

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

-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 显示帮助信息。

Linux运维老司机:CentOS6.9配置安装并配置Rsync的更多相关文章

  1. Linux运维二:CentOS6.6系统安装后的基本配置与优化

    CentOS6.6系统安装完成后还需要做一些配置与优化: 一:Linux内核版本号介绍 查看内核版本: [root@Gin scripts]# uname -r 2.6.32-504.el6.x86_ ...

  2. Linux运维-zabbix_agent最新版的yum安装

    agentd端可以直接使用yum来进行安装 rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1. ...

  3. 马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)

    马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)目录详情:18_02_ssl协议.openssl及创建私有CA18_03_OpenSSH服务及其相关应用09_01_磁盘及文 ...

  4. 如何掌握并提高linux运维技能

    初中级Linux运维人员们系统学习并迅速掌握Linux的运维实战技能.学习路线大纲如下: 入门基础篇 系统运维篇 Web运维篇 数据库运维篇 集群实战篇 运维监控篇 第一篇:Linux入门(安装.配置 ...

  5. 如何迅速掌握并提高linux运维技能(收藏文)

    如何迅速掌握并提高linux运维技能   文章来源于南非蚂蚁   之前曾经写过一篇如何学习Linux的文章,得到了很多反馈,大家都在分享自己的学习经验和体会,并且也提出了不少意见和建议.学习这个事情其 ...

  6. Linux运维:CentOS6和7的区别

    Liunx笔记:CentOS6和CentOS7的区别 路飞学城运维人员 在线流程图软件 Ago linux运维群: 93324526 笔者QQ:578843228 常用安装包下载 yum instal ...

  7. 网络配置——Linux运维基础

    今天把Linux的网络配置总结了一下,尽管并不难可是是个比較重要的基础.然后我也不知到自己以后是否会做运维,可是我知道自己比較喜欢刨根问底.还有就是我很珍惜我以前掌握过的这些运维的技能.今天突然间问自 ...

  8. Linux运维入门到高级全套常用要点

    Linux运维入门到高级全套常用要点 目 录 1. Linux 入门篇................................................................. ...

  9. linux运维中的命令梳理(一)

    在linux日常运维中,我们平时会用到很多常规的操作命令. 下面对常用命令进行梳理: 命令行日常系快捷键(不分大小写)CTRL + A 移动光标到行首CTRL + E 移动光标到行末CTRL + U ...

随机推荐

  1. Java生成名片式的二维码源码分享

    世界上25%的人都有拖延症——但我觉得这统计肯定少了,至少我就是一名拖延症患者.一直想把“Java生成名片式(带有背景图片.用户网络头像.用户昵称)的二维码”这篇博客分享出来,但一直拖啊拖,拖到现在, ...

  2. 对于bootstrap可视化布局设计可以参考2017.6.2

    http://www.layoutit.cn/v3/index.html  可视化布局链接,拖好控件自动生成代码非常方便 http://www.jq22.com/jquery-info14044  这 ...

  3. 文件上传--基于Spring MVC框架+SmartUpload

    这篇文章是介绍文件上传的,由于在spring MVC上实现起来和直接在servlet中写有些不同,所以特地写了一下这篇文章,关于不同点,大家可以先阅读一下上一篇文章.好了,下面直接上代码. jab包是 ...

  4. 开机出现loading (hd0)/ntldr。。。

    电脑一开机就出现ntldr is missing的原因:1.操作系统文件损坏.2.MBR表损坏.3.硬盘数据线松了.4.硬盘坏了.解决方法:1.重新安装操作系统.2.用U盘或光盘引导,进入PE系统,用 ...

  5. 一类SG函数递推性质的深入分析——2018ACM陕西邀请赛H题

    题目描述 定义一种有根二叉树\(T(n)\)如下: (1)\(T(1)\)是一条长度为\(p\)的链: (2)\(T(2)\)是一条长度为\(q\)的链: (3)\(T(i)\)是一棵二叉树,它的左子 ...

  6. bzoj 3166 可持久化Tire

    每一个数能做出的贡献就是其两端第二个比他大的中间的数和他的异或值 按权值大小排序,按照位置扔进set,set内的元素都是比他大的,也是全的 然后Tire上跑就行了.. #include<cstd ...

  7. BZOJ_3555_[Ctsc2014]企鹅QQ_哈希

    BZOJ_3555_[Ctsc2014]企鹅QQ_哈希 Description PenguinQQ是中国最大.最具影响力的SNS(Social Networking Services)网站,以实名制为 ...

  8. mysql事务隔离级别和MVCC

    一.三种问题: 脏读(Drity Read):事务A更新记录但未提交,事务B查询出A未提交记录. 不可重复读(Non-repeatable read):在一个事务的两次查询之中数据不一致,这可能是两次 ...

  9. STM32基于固件库新建MDK工程模板(精简版)

    上个博文理论讲解的东西太多,太复杂,这里把所有步骤全部贴出 1.新建一个工程文件夹LED 2.LED文件夹下建立如下文件夹 3.Project –>New Uvision Project 到US ...

  10. ReentrantLock和读写锁

    在Java5.0之前,只有synchronized(内置锁)和volatile. Java5.0后引入了显示锁ReentrantLock. ReentrantLock概况 ReentrantLock是 ...