CentOS7下rsync服务的基本详解和使⽤
第1章 Rsync基本概述
1.1 什么是Rsync
rsync是⼀款开源,快速,多功能的可实现增量的本地或远程的数据镜像同步备份的优秀⼯具。适⽤于多个平台。从软件名称可以看出来是远程同步的意思(remote sync)可实现全量备份与增量备份,因此⾮常适合⽤于架构集中式备份或异地备份等应⽤。
1.1.1 rsync官⽅地址
1.1.2 rsync监听端⼝
873
1.1.3 rsync运⾏模式
C/S  客户端/服务端
B/S  浏览器/服务端
1.1.4 rsync备份⽅式
全量备份
将客户端所有的数据内容全都备份到服务端
增量备份
将客户端数据内容(不包含已备份到服务端的内容)增量备份到服务端
1.2 Rsync传输⽅式及应⽤场景
1.2.1 上传(推)
所有主机推送本地数据⾄Rsync备份服务器,会导致数据同步缓慢(适合少量数据备份)
机器量不是很多的时候,可以使⽤推送
1.2.2 下载(拉)
rsync备份服务端拉取所有主机上的数据,会导致备份服务器开销⼤
机器量很⼤的时候,推和拉协同使⽤
1.3 Rsync传输模式
Rsync⼤致使⽤三种主要的数据传输⽅式
1.3.1 本地⽅式(单个主机本地之间的数据传输,类似cp命令)
Local:  本地传输
Local:  rsync [] [DEST]
rsync      ---备份命令(cp)
[options]      ---选项
<      ---本地源⽂件
[DEST]     ---本地⽬标⽂件
[root@backup ~]# rsync -avz /etc/passwd /tmp/
[root@backup ~]# ls /tmp/passwd
/tmp/passwd
1.3.2 远程⽅式通过(ssh通道传输数据,类似scp命令)Access via remote shell: 远程传输
Pull: rsync [] [USER@] [DEST]  下载(拉)
Pull          ---拉取, 下载
rsync            ---备份命令
[options]        ---选项
[USER@]      ---⽬标主机的系统⽤户
HOST          ---⽬主机IP地址或域名
<      ---⽬标主机源⽂件
[DEST]      ---下载⾄本地哪个位置
下载pull
[root@nfs ~]# pwd
/root
[root@nfs ~]# echo "This Nfs" > file
[root@backup ~]# rsync -avz root@172.16.1.31:/root/file /opt/
[root@backup ~]# cat /opt/file
This Nfs
Push: rsync [] [USER@]HOST:DEST    上传(推)Push          ---推,上传
rsync          ---备份命令
[options]          ---选项
<            ---本地源⽂件
[USER@]       ---⽬标主机的系统⽤户
HOST            ---⽬主机IP地址或域名
[DEST]       ---⽬标对应位置
上传push(将backup的file2⽂件上传⾄NFS服务器的/mnt⽬录)
[root@backup ~]# pwd
/root
[root@backup ~]# echo "This Rsync" > file2
[root@backup ~]# rsync -avz /root/file2 root@172.16.1.31:/mnt
[root@nfs ~]# cat /mnt/file2
This Rsync
推送⽬录(推送/root/⽬录下⾯的所有⽂件和⽬录,不会推送/root/⽬录本⾝)[root@backup ~]# rsync -avz /root/ root@172.16.1.31:/tmp            /root/
推送⽬录,推送⽬录本⾝以及⽬录下⾯的所有⽂件
[root@backup ~]# rsync -avz /root root@172.16.1.31:/tmp            /root
远程⽅式存在的缺陷:
1.需要使⽤系统⽤户(不安全)
2.使⽤普通⽤户(权限存在问题)
3.需要⾛ssh协议
1.3.3 守护进程(服务,持续后台运⾏)
Access via rsync daemon:    守护进程⽅式传输
Pull: rsync [] [USER@]HOST:: [DEST]
rsync        ---命令
[]        ---选项
[USER@]       ---远程主机⽤户(虚拟⽤户)
HOST::        ---远程主机地址
<        ---远程主机模块(不是⽬录)
[DEST]        ---将远程主机数据备份⾄本地什么位置
拉取rsync备份服务的backup模块数据⾄本地/mnt⽬录
[root@nfs01 ~]# rsync -avz rsync_backup@192.172.16.1.41::backup/ /mnt/
Push: rsync [] [USER@]HOST::DEST
Push: rsync [] [USER@]HOST::DEST
rsync                ---命令
[]          ---选项
<          ---远程主机模块(不是⽬录)
centos vim命令
[USER@]        ---远程主机⽤户(虚拟⽤户)
HOST::        ---远程主机地址
[DEST]        ---将远程主机模块备份⾄本地什么位置
将本地/mnt⽬录推送⾄rsync备份服务器的backup模块
[root@nfs01 ~]# rsync -avz /mnt/ rsync_backup@192.172.16.1.41::backup/
1.4 Rsync命令选项
紫⾊字符表⽰不固定,根据⾃⼰需求调整。红⾊字符表⽰警告。
-a归档模式传输, 等于-tropgDl
-v详细模式输出, 打印速率, ⽂件数量等
-z传输时进⾏压缩以提⾼效率
-r递归传输⽬录及⼦⽬录,即⽬录下得所有⽬录都同样传输-t保持⽂件时间信息
-
o保持⽂件属主信息
-p保持⽂件权限
-g保持⽂件属组信息
-l 保留软连接
-P显⽰同步的过程及传输时的进度等信息
-D保持设备⽂件信息
-L保留软连接指向的⽬标⽂件
-e使⽤的信道协议,指定替代rsh的shell程序
--exclude=PATTERN指定排除不需要传输的⽂件模式
--exclude-from=file⽂件名所在的⽬录⽂件
--bwlimit=100限速传输
-
-partial断点续传
--delete让⽬标⽬录和源⽬录数据保持⼀致谨慎使⽤
第2章 Rsync服务配置
2.1 需要准备两台服务器
⾓⾊外⽹IP(NAT)内⽹IP(LAN)主机名Rsync服务端eth0:10.0.0.41eth1:172.16.1.41backup Rsync客户端eth0:10.0.0.31eth1:172.16.1.31nfs 2.2 安装rsync
[root@backup ~]# yum install rsync -y
2.3 配置rsync
查询配置⽂件存放的路径
[root@backup ~]# rpm -qc rsync
/f
进⾏配置
[root@backup ~]# vi /f      先把原有的内容清除,这⾥要⽤vi进⾏编辑,不能使⽤vim
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.password
log file = /var/log/rsyncd.log
>>>>>>>##
[backup]
comment = welcome to  backup!
path = /backup
2.3.1 配置内容解释
# 全局模块
uid = rsync                          --- 运⾏进程的⽤户
gid = rsync                        --- 运⾏进程的⽤户组
port = 873                          --- 监听端⼝
fake super = yes                    --- ⽆需让rsync以root⾝份运⾏,允许存储⽂件的完整属性
use chroot = no                      --- 关闭假根功能
max connections = 200              --- 最⼤连接数
timeout = 600                      --- 超时时间
ignore errors                      --- 忽略错误信息
read only = false                  --- 对备份数据可读写
list = false                        --- 不允许查看模块信息
auth users = rsync_backup          --- 定义虚拟⽤户,作为连接认证⽤户
secrets file = /etc/rsync.passwd    ---定义rsync服务⽤户连接认证密码⽂件路径
##局部模块
[backup]                --- 定义模块信息
comment = commit        --- 模块注释信息
path = /backup          --- 定义接收备份数据⽬录
2.4 创建⽤户(运⾏rsync服务的⽤户⾝份)
2.4.1 创建rsync账户,不允许登录不创建家⽬录
[root@backup ~]# useradd -M -s /sbin/nologin rsync
2.4.2 创建备份⽬录(尽可能磁盘空间⾜够⼤),授权rsync⽤户为属主[root@backup ~]# mkdir /backup
[root@backup ~]# chown -R rsync.rsync /backup/
2.5 创建虚拟⽤户密码⽂件(⽤于客户端连接时使⽤的⽤户)
创建虚拟⽤户和密码⽂件,并赋予600权限
[root@backup ~]# echo "rsync_backup:1" >/etc/rsync.password    密码设置为1
[root@backup ~]# chmod 600 /etc/rsync.password
2.6 启动rsync服务,并加⼊开机⾃启
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
2.7 启动后检查对应端⼝
[root@bogon ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address          Foreign Address        State      PID/Program name
tcp        0      0 0.0.0.0:873            0.0.0.0:*              LISTEN      4758/rsync
第3章 Rsync服务实践
rsync实现简单的本地打包和推送
3.1 将客户端的/etc/passwd 推送⾄ rsync服务端[backup]
rsync [] [USER@]HOST::DEST
[root@nfs ~]# rsync -avz /etc/passwd rsync_backup@172.16.1.41::backup
3.2 将rsync服务端模块[/backup]下载⾄本地
Pull: rsync [] [USER@]HOST:: [DEST]
[root@nfs ~]# rsync -avz rsync_backup@172.16.1.41::backup /opt
3.3 同步时不输⼊密码[第⼀种⽅式,sersync]
在服务端创建密码⽂件并赋予600权限
[root@nfs ~]# echo "1" >/etc/rsync.password      这⾥1代表密码,密码要和服务端的⼀致
[root@nfs ~]# chmod 600 /etc/rsync.password
执⾏rsync服务端模块[/backup]下载⾄本地的命令加--password-file=/etc/rsync.password [root@nfs ~]# r
sync -avz rsync_backup@172.16.1.41::backup /opt --password-file=/etc/rsync.password 3.4 同步时不输⼊密码[第⼆种⽅式:写脚本时使⽤]

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论