day32 Rsync服务及搭建备份服务器(cp)

rsync复制软件应用与实践

[rrsync命令语法]https://download.samba.org/pub/rsync/rsync.html

1、什么是rsync?

rsync,Rsync英语全称为Remote synchronization,是开源、高速的、可实现本地以及远程,全量以及增量的数据复制(拷贝)工具。

2、全量复制和增量复制的区别?

全量复制:
[root@nfs01 ~]# cp -a /etc/ /opt/
[root@nfs01 ~]# \cp -a /etc/ /opt
[root@nfs01 ~]# touch /etc/oldboy.txt
[root@nfs01 ~]# \cp -a /etc/ /opt/
增量复制:
只复制oldboy.txt(只复制另添加的文件)

3、rsync的作用?(适用于什么地方)

工作中需要定时/实时数据备份。本地不同的机器目录、不同的机房之间的数据备份。这些都可以用rsync完成。

4、rsync的功能特性

增量复制的原理

使用quick check算法,只对增量的部分复制,根据大小属性的变化进行复制。
2.x比对差异后复制,3.x一边比对一边复制。

6、rsync三种工作模式介绍

①本地(local)

rsync就是一个命令
命令操作:
rsync命令
a.把数据从一个地方复制到另一个的的地方(仅在一台机器增量),相当于cp。
b.通过加参数实现删除的功能,相当于rm命令。
c.查看属性信息功能,相当于1s。

②远程Shell模式

借助类似ssh隧道传输数据,适合不同机器之间的复制。
异地考本,相当于srcp
拉门,推门
pull,拉:从远端拉取到本地。
rsync [OPTION ...] [USER @] HOST : SRC ... [DEST]

[root@nfs01 ~]# rsync -avz root@172.16.1.41:/root/1.txt /opt/
root@172.16.1.41's password: 
receiving incremental file list
1.txt

sent 43 bytes  received 106 bytes  33.11 bytes/sec
total size is 24  speedup is 0.16
[root@nfs01 ~]# cd /opt/
[root@nfs01 /opt]# ls
1.txt

rsync命令 参数选项 [认证用户]@[主机地址]:[源地址]..[目的地址]
push,推:从本地推到远端。
rsync [OPTION ...] SRC ... [USER @] HOST : DEST

[root@nfs01 ~]# rsync -avz /etc/hosts root@172.16.1.41:/opt/
The authenticity of host '172.16.1.41 (172.16.1.41)' can't be established.
ECDSAkeyfingerprintisSHA256:pSmZZNpT7WLg8LxBk9gFez5RNq3gaxYgpo/Kd9sv1Do.ECDSAkeyfingerprintisMD5:ce:42:93:22:32:b3:9c:4a:71:81:b9:f6:50:e5:bb:6b.Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.41' (ECDSA) to the list of known hosts.
root@172.16.1.41's password: 
sending incremental file list
hosts

sent 218 bytes  received 35 bytes  38.92 bytes/sec
total size is 332  speedup is 1.31

[root@backup /opt]# ls   <==检查
hosts

推拉:
a.参照物,执行命令的机器
b.root@172.16.1.41 使用的用户和主机,就用主机和用户密码。

重点:适合rsync

null和null/区别,null是目录和目录下的内容,null/只是目录下的内容,不含本身。

③rsync守护进程模式

首先要搭建rsync服务器(要有守护进程),然后才能在客户端实现推拉数据

7、rsync命令的参数

image

--password-file=file 从flie中得到密码。
企业常用参数组合:-avz或者-vzrtopg

8、rsync守护进程模式部署

(1)注:以下操作均为backup机器

①查看rsync版本

[root@backup ~]# rsync --version <==查看rsync版本
rsync  version 3.1.2  protocol version 31
Copyright (C) 1996-2015 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, ACLs, xattrs, iconv, symtimes, prealloc

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.

②配置配置文件

[root@backup ~]# cp /etc/rsyncd.conf{,.ori} 
[root@backup ~]# > /etc/rsyncd.conf
[root@backup ~]# cat >/etc/rsyncd.conf<<EOF
> #rsync_config_______________start
> #created by oldboy
> #site: http://www.oldboyedu.com
> uid =rsync                       #--->管理备份目录的用户
> gid =rsync                       #--->管理备份目录的用户组
> use chroot = no                  #--->安全功能,数据是否锁定到备份目录
> max connections = 200            #--->并发连接,同时多少客户端访问
> timeout =600                     #--->超时时间。
> pid file = /var/run/rsyncd.pid   #--->进程号所在文件 
> lock file = /var/run/rsync.lock  #--->锁文件
> log file = /var/log/rsyncd.log   #--->日志文件,查看报错等
> ignore errors                    #--->忽略错误
> read only = false                #--->可写
> list = false                     #--->不允许列表
> hosts allow = 172.16.1.0/24      #--->哪些主机可以访问。
> hosts deny = 0.0.0.0/32          #--->哪些主机不允许访问。
> auth users = rsync_backup        #--->远程虚拟连接用户
> secrets file = /etc/rsync.password     #--->存放密码的文件:格式:用户名:密码权限必须600
> [backup]                               #--->[模块名]远程访问使用模块名访问
> comment = welcome to oldboyedu backup! #--->说明注释
> path = /backup/                        #--->服务端用户备份的目录,用户和组,rsync.rsync
> EOF

[root@backup ~]# useradd rsync
[root@backup ~]# id rsync
uid=1004(rsync) gid=1004(rsync) 组=1004(rsync)
[root@backup ~]# mkdir -p /backup
[root@backup ~]# chown rsync.rsync /backup/

man rsync 查命令的参数
man rsyncd.conf 查配置参数
[rrsync命令语法]https://download.samba.org/pub/rsync/rsync.html
③启动和检查

rsync --daemon(CentOS6 以前)
systemctl start rsyncd
systemctl enable rsyncd
systemctl status rsyncd

④配置密码文件

[root@backup ~]# echo "rsync_backup:oldboy" > /etc/rsync.password
[root@backup ~]# chmod 600 /etc/rsync.password
[root@backup ~]# cat /etc/rsync.password 
rsync_backup:oldboy
[root@backup ~]# ll /etc/rsync.password 
-rw------- 1 root root 20 4月  15 11:52 /etc/rsync.password

rsync服务端配置完成

(2)注:以下操作都是在客户端服务器

两个方法二选一
方法1:认证密码文件

[root@nfs01 ~]# echo "oldboy" > /etc/rsync.password
[root@nfs01 ~]# chmod 600 /etc/rsync.password 
[root@nfs01 ~]# ll /etc/rsync.password 
-rw------- 1 root root 7 4月  15 11:55 /etc/rsync.password

方法2:

[root@nfs01 ~]# echo 'export RSYNC_PASSWORD=oldboy' >>/etc/bashrc
[root@nfs01 ~]# tail -1 /etc/bashrc 
export RSYNC_PASSWORD=oldboy
[root@nfs01 ~]# . /etc/bashrc
[root@nfs01 ~]# echo $RSYNC_PASSWORD
oldboy

rsync客户端nfs01配置完成

(3)守护进程模式,客户端rsync的命令和语法:

配置服务器守护进程,实现数据传输:
1.服务器端守护进程。2.客户端执行命令。
拉门,推门
pull,拉:从远端拉取到本地。
语法1:
rsync [OPTION ...] [USER @] HOST :: SRC ... [DEST]
rsync命令 参数选项 [虚拟用户]@[主机地址]::[模块名]..[本地路径]
语法2:
rsync [OPTION ...] rsync:// [USER @] HOST :: SRC ... [DEST]
rsync命令 参数选项 rsync:// [虚拟用户]@[主机地址]/[模块名]..[本地路径
push,推:从本地推到远端。
语法1:
rsync [OPTION ...] [DEST] [USER @] HOST :: SRC ...
rsync命令 参数选项 [本机路径] [虚拟用户]@[主机地址]::[模块名]...
语法2:
rsync [OPTION ...] [DEST] rsync:// [USER @] HOST :: SRC ...
rsync命令 参数选项 [本地路径] rsync:// [虚拟用户]@[主机地址]/[模块名]..

(4)测试结果

错误1:

[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
@ERROR: invalid uid rsync
rsync error: error starting client-server protocol (code 5) at main.c(1648) [sender=3.1.2]

解答:

[root@backup ~]# useradd rsync
[root@backup ~]# id rsync
uid=1001(rsync) gid=1001(rsync) 组=1001(rsync)
[root@backup ~]# mkdir -p /backup
[root@backup ~]# chown -R rsync.rsync /backup/
[root@backup ~]# ls -ld /backup/
drwxr-xr-x 2 rsync rsync 6 4月  15 12:12 /backup/

错误2:

[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
sending incremental file list
hosts
rsync: chgrp ".hosts.YDuTjO" (in backup) failed: Operation not permitted (1)

sent 223 bytes  received 124 bytes  694.00 bytes/sec
total size is 332  speedup is 0.96
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]

解答:增加如下参数到/etc/rsyncd.conf

fake  super  = yes #不用root用户也可以存储文件的完整属性。
This allows the full attributes of a file to  be  stored  without having to have the daemon actually running as root.
[root@backup ~]# grep fake /etc/rsyncd.conf
fake super = yes

改完配置,要重启服务:

[root@backup ~]# systemctl restart rsyncd

在测试:成功

[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
sending incremental file list
hosts

sent 89 bytes  received 49 bytes  276.00 bytes/sec
total size is 332  speedup is 2.41

rsync -avz /etc rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

服务端检查:

[root@backup ~]# ls /backup/
hosts
[root@backup ~]# ls /backup/
etc  hosts

如果客户端按照环境变量的方式配置,则可以忽略--password-file=/etc/rsync.password参数。

[root@nfs01 ~]# rsync -avz /etc rsync_backup@172.16.1.41::backup
sending incremental file list

sent 52,071 bytes  received 644 bytes  105,430.00 bytes/sec
total size is 31,244,350  speedup is 592.70

测试增量

[root@nfs01 ~]# touch /etc/oldboy.txt
[root@nfs01 ~]# rsync -avz /etc rsync_backup@172.16.1.41::backup
sending incremental file list
etc/oldboy.txt

sent 52,098 bytes  received 655 bytes  105,506.00 bytes/sec
total size is 31,244,350  speedup is 592.28
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343