一、Rsync的简单介绍

Rsync是一款开源的、快速的、多功能的、可实现全量及增量(全量备份是指全部备份,增量备份是在上一次备份的基础上只备份更新的内容)的本地货远程数据同步备份的优秀工具。Rsync软件适用于unix/linux/windows等多种操作系统平台。

二、Rsync的三种工作模式

#rsync 本地模式

Local:  rsync [OPTION...] SRC... [DEST]

#rsync shell模式

Access via remote shell:

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

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

#rsync daemon模式

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常用参数

-v

详细模式输出,传输时的进度等信息

-z

传输时进行压缩以提高传输效率,--compress-level=NUM可按级别压缩

-a

以递归方式传输文件,并保持所有文件的属性

-r

对子目录以递归模式,即目录下的所有目录都以同样的模式传输

-t

保持文件的时间信息

-o

保持文件的属主信息

-p

保持文件的权限

-g

保持文件的属组信息

-P(大写)

显示同步的过程及传输时的进度等信息

-D

保持设备文件信息

-I

保留软链接

-e,--rsh=COMMAND

使用的信道协议,指定替代rsh的shell程序

-n

测试选项,模拟执行

--exclude=PATTERN

指定排除不需要传输的文件模式

--exclide-from=FILE

从文本文件读取需要排除的文件列表

--bwlimit=KBPS

限制传输速度

--partial

断点续传

--delete

使目标目录内容和源保持目录一致,删除不同的文件

四、搭建Rsync服务

实验环境:

<1>系统环境:

•CentOS7.5

<2>主机环境:

•backup01  IP地址:10.0.0.41  rsync服务端(备份服务端)

•nfs01    IP地址:10.0.0.31  rsync客户端(用户数据)

1、服务端(远程备份服务器)

第一步:查看rsync安装包
rpm -qa rsync 第二步:添加rsync服务的用户,管理本地目录
useradd -s /sbin/nologin -M rsync
id rsync 第三步:配置rsync的进程模式(vim /etc/rsyncd.conf)
uid = rsync
gid = rsync
use chroot = no
max connections =
timeout =
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[backup]
path = /backup
ignore errors
read only = false
list = false
fake super = yes
hosts allow = 172.16.2.0/
hosts deny = 0.0.0.0/
auth users = rsync_backup
secrets file = /etc/rsync.password 第四步:根据rsync.conf的auth_users配置帐户,远程连接的,并根据secreets file参数生成密码文件
echo "rsync_backup:wt">>/etc/rsync.password
cat /etc/rsync.password 第五步:更改密码配置文件的权限
chmod /etc/rsync.password
ls -l /etc/rsync.password 第六步:创建共享的目录授权rsync服务管理
mkdir -p /backup
chown -R rsync.rsync /backup #提示:如果没有/backup目录,就会chdir failed 第七步:启动rsync服务并检查
rsync --daemon
ps -ef|grep rsync|grep -v grep
lsof -i : 第八步:开机自启动
echo "/usr/bin/rsync --daemon">>/etc/rc.local
tail - /etc/rc.local

2、客户端

第一步:生成连接服务器需要的密码文件
echo "wt">>/etc/rsync.password
cat /etc/rsync.password 第二步:为密码文件配置权限
chmod /etc/rsync.password
ls -l /etc/rsync.password

3、客户端推送数据到服务端

提示:rsync: chgrp "data" (in backup) failed: Operation not permitted (1),出现这个语句是因为rsyncd.conf没有配置fake super = yes

[root@nfs01 ~]# mkdir /data
[root@nfs01 ~]# cd /data/
[root@nfs01 data]# touch aaa
[root@nfs01 data]# rsync -avz /data rsync_backup@172.16.2.41::backup/
Password:
sending incremental file list
rsync: chgrp "data" (in backup) failed: Operation not permitted ()
data/
data/aaa
rsync: chgrp "data/.aaa.3HdDEQ" (in backup) failed: Operation not permitted () sent bytes received bytes 37.76 bytes/sec
total size is speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code ) at main.c() [sender=3.1.]

4、服务端查看数据是否推送成功

[root@backup01 ~]# cd /backup/
[root@backup01 backup]# ls
data
[root@backup01 backup]# cd
[root@backup01 ~]# cd /backup
[root@backup01 backup]# ls
data
[root@backup01 backup]# ls data/
aaa

五、Rsync多模块配置

uid = rsync
gid = rsync
use chroot = no
max connections =
timeout =
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[backup]
path = /backup
ignore errors
read only = false
list = false
fake super = yes
hosts allow = 172.16.2.0/
hosts deny = 0.0.0.0/
auth users = rsync_backup
secrets file = /etc/rsync.password [wtt]
path = /wtt
ignore errors
read only = false
list = false
fake super = yes
hosts allow = 172.16.2.0/
hosts deny = 0.0.0.0/
auth users = rsync_wtt
secrets file = /etc/rsync.password.wtt

六、深入使用Rsync

1、从远程存储节点拉取数据到本地

[root@nfs01 ~]# cd /data/
[root@nfs01 data]# ls
aaa ssss
[root@nfs01 data]# rm -f *
[root@nfs01 data]# rsync -avz rsync_backup@172.16.2.41::backup/ /data/ --password-file=/etc/rsync.password
receiving incremental file list
./
aaa
ssss sent bytes received bytes 500.00 bytes/sec
total size is speedup is 0.00

2、排除某些文件推送数据

#同步除名为eee文件之外的文件

[root@nfs01 data]# ls

aaa  bbb  ccc  ddd  eee  ssss

[root@nfs01 data]# rsync -avz --exclude=eee /data rsync_backup@172.16.2.41::backup/ --password-file=/etc/rsync.password

sending incremental file list

data/

data/aaa

data/bbb

data/ccc

data/ddd

data/ssss

sent  bytes  received  bytes  922.00 bytes/sec

total size is   speedup is 0.00

#查看远程存储节点的数据内容

[root@backup01 backup]# ls

data

[root@backup01 backup]# ls data/

aaa  bbb  ccc  ddd  ssss

3、排除多个文件推送数据

#同步除名为ccc和eee文件之外的文件

[root@nfs01 data]# ls

aaa  bbb  ccc  ddd  eee  ssss

[root@nfs01 data]# rsync -avz --exclude={ccc,eee} /data rsync_backup@172.16.2.41::backup/ --password-file=/etc/rsync.password

sending incremental file list

data/

data/aaa

data/bbb

data/ddd

data/ssss

sent  bytes  received  bytes  784.00 bytes/sec

total size is   speedup is 0.00

#查看远程存储节点的数据内容

[root@backup01 backup]# ls

data

[root@backup01 backup]# ls data/

aaa  bbb  ddd  ssss

8.4、排除连续文件推送数据

[root@nfs01 data]# ls

a  aaa  b  bbb  c  ccc  ddd  eee  ssss

[root@nfs01 data]# rsync -avz --exclude={a..c} /data rsync_backup@172.16.2.41::backup/ --password-file=/etc/rsync.password

sending incremental file list

data/

data/aaa

data/bbb

data/ccc

data/ddd

data/eee

data/ssss

sent  bytes  received  bytes  356.67 bytes/sec

total size is   speedup is 0.00

5、通过排除文件推送数据

[root@nfs01 data]# cat /tmp/file.txt

ssss

eee

g

[root@nfs01 data]# ls

a  aaa  b  bbb  c  ccc  ddd  eee  ssss

[root@nfs01 data]# rsync -avz --exclude-from=/tmp/file.txt /data rsync_backup@172.16.2.41::backup/ --password-file=/etc/rsync.password

sending incremental file list

data/

data/a

data/aaa

data/b

data/bbb

data/c

data/ccc

data/ddd

sent  bytes  received  bytes  402.67 bytes/sec

total size is   speedup is 0.00

6、无差异同步(--delete)

注意:使用—delete选项,即本地有啥,远程存储节点就业啥,如果远程存储节点有别的数据。那么这些“别的数据”将全部被删除掉,所有慎用这个--delete选项。

#远端存储节点的数据如下

[root@backup01 backup]# ls

data

[root@backup01 backup]# ls data/

a  aaa  b  bbb  c  ccc  ddd

#本地数据如下

[root@nfs01 data]# ls

a  b  c  d  e  f  g

#本地数据推送到远程存储服务器

[root@nfs01 data]# rsync -avz --delete  /data rsync_backup@172.16.2.41::backup/ --password-file=/etc/rsync.password

sending incremental file list

deleting data/ddd

deleting data/ccc

deleting data/bbb

deleting data/aaa

data/

data/a

data/b

data/c

data/d

data/e

data/f

data/g

sent  bytes  received  bytes  ,254.00 bytes/sec

total size is   speedup is 0.00

#再次查看远程存储服务器的备份数据内容发现 {aaa bbb ccc}这三个文件被删除了

[root@backup01 backup]# ls

data

[root@backup01 backup]# ls data/

a  b  c  d  e  f  g

8.7  限制速度推送数据(--bwlimit=KBPS)

#未限速

[root@nfs01 data]# dd if=/dev/zero of=test1 bs=1M count=

[root@nfs01 data]# rsync -avz   /data rsync_backup@172.16.2.41::backup/ --password-file=/etc/rsync.password

sending incremental file list

data/

data/test1

sent , bytes  received  bytes  ,783.09 bytes/sec

total size is ,,  speedup is ,026.07

#限速

[root@nfs01 data]# rsync -avz --bwlimit=10k  /data rsync_backup@172.16.2.41::backup/ --password-file=/etc/rsync.password

sending incremental file list

data/

data/test1

sent , bytes  received  bytes  ,689.41 bytes/sec

total size is ,,  speedup is ,026.07

Linux搭建rsync服务的更多相关文章

  1. [Linux] 搭建rsync服务端

    rsync是unix/linux下同步文件的一个高效算法,它能同步更新两处计算机的文件与目录,并适当利用查找文件中的不同块以减少数据传输. Linux守护进程的运行方式:1.独立运行(stand-al ...

  2. Centos6.9 搭建rsync服务端与客户端 案例:全网备份项目

    rsync的企业工作场景说明 1)定时备份 1.1生产场景集群架构服务器备份方案项目 借助cron+rsync把所有客户服务器数据同步到备份服务器 2)实时复制 本地数据传输模式(local-only ...

  3. 最全Linux搭建SVN服务端教程

    文章首推 支付宝接口对接 高德地图调用 验证码登录 QQ邮箱登录 今日主题:Linux搭建SVN服务端 简介 相信程序员对SVN还是不陌生的,虽然现在用Git比较多,但是SVN也是用的,SVN可以做代 ...

  4. linux 搭建SVN服务端

    搞了个服务器,然后现在想搞点事情,于是乎整个SVN在上面,算是熟悉下svn的操作过程 以下内容转载自: https://yq.aliyun.com/articles/6693 ------------ ...

  5. Linux搭建NFS服务

    一.NFS服务简单介绍 NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中, ...

  6. Linux搭建rsync备份服务器备份

    环境: 1台rsync备份服务器,IP:10.0.0.188 1台rsync备份客户端,IP:10.0.0.51 备份数据需注意: 1. 在业务低谷时间进行备份 2. 进行备份限速 一.搭建rsync ...

  7. 搭建rsync服务(端口号873)

    rsync详细参数 1.-v,--verbose 详细模式输出,传输是的进度信息 2.-z,--compress 传输是进行压缩以提高传输效率,--comperess -level = NUM可以按级 ...

  8. linux搭建apache服务并修改默认路径

    该篇文章主要讲解如何在linux服务器上搭建apache服务器,并修改指定的apache路径到自定义路径下 一:检查服务器上是否已安装apache,停止并卸载系统自带apache服务 命令为:rpm ...

  9. Linux——搭建FTP服务

    一.FTP基本概念: 1.FTP的作用: 实现文件系统的安全匿名访问:包括上传.下载和查看,可以应用于Windows和Linux系统 2.FTP的工作原理 server与client都支持ftp传输协 ...

随机推荐

  1. 领扣(LeetCode)二叉树的所有路径 个人题解

    给定一个二叉树,返回所有从根节点到叶子节点的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 输入: 1 / \ 2 3 \ 5 输出: ["1->2->5", ...

  2. MAC系统下,Jmeter5.1.1 无法录制问题

    问题一: 点击[start]先出现一个检查证书信息的弹窗,确保删除旧的安装新的,并且需要信任证书 (一般证书只需要信任一下即可,每次启动都会有这个弹窗提醒) 问题二: MAC OS系统使用Jmeter ...

  3. window系统下删除多余的引导

    window系统下删除多余的引导 1.首先第一步进入EFI分区删除多余系统引导,只留下需要的引导 如何进入EFI分区 a)win 搜索框输入cm, 右键以管理员运行命令行 b)输入命令 diskpar ...

  4. python描述:链表

    单链表结构: 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成.每个结点 ...

  5. [Windows篇] 在windows 10上源码编译gtest 并编写CMakeLists.txt

    本文首发于个人博客https://kezunlin.me/post/aca50ff8/,欢迎阅读! compile gtest on windows 10 Guide compile gtest on ...

  6. PostGIS mysql_fdw安装(Linux)

    ##本人在安装过程中,可能因为系统环境因素或是其他原因,参考网上的文章没有一篇是非常顺利的,所以自己总结一下. ##安装过程中非常坎坷,有些地方反复了好几次,弄的有点模糊,但模糊的地方在文中我会指出. ...

  7. 设计模式之美学习(九):业务开发常用的基于贫血模型的MVC架构违背OOP吗?

    我们都知道,很多业务系统都是基于 MVC 三层架构来开发的.实际上,更确切点讲,这是一种基于贫血模型的 MVC 三层架构开发模式. 虽然这种开发模式已经成为标准的 Web 项目的开发模式,但它却违反了 ...

  8. Spring Security框架下实现两周内自动登录"记住我"功能

    本文是Spring Security系列中的一篇.在上一篇文章中,我们通过实现UserDetailsService和UserDetails接口,实现了动态的从数据库加载用户.角色.权限相关信息,从而实 ...

  9. 软件测试必须掌握的抓包工具Wireshark,你会了么?

    作为软件测试工程师,大家在工作中肯定经常会用到各种抓包工具来辅助测试,比如浏览器自带的抓包工具-F12,方便又快捷:比如时下特别流行的Fiddler工具,使用各种web和APP测试的各种场景的抓包分析 ...

  10. java内存区域,jvm内存各个区域详解

    一.运行时数据区域 1.如图所示,可分为如下几个区域. 2.程序计数器 程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器.字节码解释器工作时就是通过改变这个计数器的 ...