Linux System Environment
[root@rsync01 ~]# cat /etc/redhat-release #==》系统版本
CentOS Linux release 7.5.1804 (Core)
[root@rsync01 ~]#uname –r #==》内核版本
3.10.0-862.el7.x86_64
[root@rsync01 ~]#uname -m #==》系统架构
x86_64
[root@rsync01 ~]#echo $LANG #==》系统字符集
en_US.UTF-8
[root@nfs01 ~]# rsync –version #==》Rsync版本
rsync version 3.1.2 protocol version 31
全量备份
全量备份是指将客户端所有的数据备份,效率低下,占用空间。
增量备份
增量备份是不会将客户端所有数据备份,而且将有变化的数据备份,提高备份效率,节省空间,适合异地备份。
Rsync功能
1、本地复制(增量备份),类似cp命令(全量备份)
2、异地复制(增量备份),类似scp命令(全量备份)
3、守护进程模式,开启后台进程,接受主机访问
4、使用户传输数据时可以免密码输入进行传输数据
5、传输过程使用-z压缩数据传输速度更快
Rsync语法格式
1、Local(本地传输): rsync [OPTION...] SRC... [DEST]
rsync -avz /etc/hosts /backup
2、Access via remote shell(远程传输):
推送 rsync -avz /etc/hosts root@10.0.0.70:/backup
拉取 rsync -avz root@10.0.0.70:/backup /etc/hosts
3、Access via rsync daemon(守护进程模式传输):
推送 rsync -avz /etc/hosts root@10.0.0.70::backup
拉取 rsync -avz root@10.0.0.70::backup /etc/hosts
Rsync守护进程模式工作流程图
Rsync命令参数
推荐参数用法 -avz 或者 -avzP
1、-a #==》归档模式传输,功能等于 –tropgDl参数集合
2、-r #==》递归复制
3、-l #==》保持软连接
4、-L #==》保留软件接指向目标文件
5、-p #==》保持文件权限
6、-P #==》显示同步的过程及传输时的进度信息
7、-t #==》保持文件修改时间
8、-g #==》保持用户组不变
9、-o #==》保持用户不变
10、-z #==》数据压缩传输
11、-v #==》显示输出过程
12、--exclude={a,b,c,d} #==》多个文件或--exclude=a单个文件,排除不复制的文件
13、--exclude-from=file #==》接收文件内容指定排除的文件
14、--progress #==》显示传输进度
15、--bwlimit=KBPS #==》限制I/O带宽,KBytes per second
16、--delete #==》使目标目录和源目录数据保持一致
rsyncd.conf配置文件参数说明
标注:Rsync守护进程模式下配置文件才有效
[root@RsyncServer ~]#cat /etc/rsyncd.conf
##rsyncd.conf start
uid = www #==》运行Rsync子进程的用户
gid = www #==》运行Rsync子进程的用户组
port = 873 #==》监听端口
fake super = yes #==》无需让rsync以root身份运行,允许接收文件的完整性
use chroot = no #==》禁锢推送的数据至某个目录,不允许跳出该目录
max connections = 200 #==》最大连接数
timeout =300 #==》设置访问rsync服务超时时间
pid file = /var/run/rsyncd.pid #==》保存Rsync进程号ID
lock file = /var/run/rsyncd.lock #==》锁文件
log file = /var/log/rsyncd.log #==》Rsync日志文件
ignore errors #==》忽略错误信息
read only = false #==》对备份数据可读写
list = false #==》不允许查看模块信息
#hosts allow = 10.0.0.0/24 #==》允许访问rsync服务指定的网段
#hosts allow = 10.0.0.200/24 #==》允许访问rsync服务指定的IP
#hosts deny = 10.0.0.0/32 #==》禁止访问rsync服务指定的网段
#hosts deny = 10.0.0.8 #==》禁止访问rsync服务指定的IP
auth users = rsync_backup #==》访问rsync服务虚拟用户
secrets file = /etc/rsync.password #==》认证虚拟用户密码文件
[backup] #==》模块标签
Comment = welcome to backup #==》模块描述
path = /backup #==》Rsync备份路径
##rsyncd.conf end
一、配置阿里云yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum makecache
二、yum安装Rsync服务
标注:CentOS 7 rsync默认已安装
[root@rsync01 ~]# yum -y install rsync
[root@rsync01 ~]# rpm -qc rsync
/etc/rsyncd.conf
/etc/sysconfig/rsyncd
三、创建统一虚拟用户 www
[root@rsync01 ~]# useradd -s /sbin/nologin -M www
[root@rsync01 ~]# id www
uid=1002(www) gid=1002(www) groups=1002(www)
四、创建备份目录
[root@rsync01 ~]# mkdir /backup
[root@rsync01 ~]# chown -R www.www /backup
[root@rsync01 ~]# ls -ld /backup/
drwxr-xr-x 2 www www 6 Aug 29 11:20 /backup/
五、配置Rsync配置文件/etc/rsyncd.conf
[root@rsync01 ~]# vim /etc/rsyncd.conf
uid = www
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 300
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
[backup]
comment = welcome to backup!
path = /backup
六、创建密码文件并更改授权
[root@rsync01 ~]# echo 'rsync_backup:123456' > /etc/rsync.passwd
[root@rsync01 ~]# chmod 600 /etc/rsync.passwd
[root@rsync01 ~]# cat /etc/rsync.passwd
rsync_backup:123456
七、启动Rsync守护进程模式并设置开机自启动
[root@rsync ~]# systemctl start rsyncd
[root@rsync ~]# systemctl enable rsyncd
[root@rsync ~]# systemctl status rsyncd
[root@rsync01 ~]# ss -tlunp | grep rsync
八、Rsync客户端测试操作
标注:Rsyns两个方法免密码传输文件,方法一:创建密码文件;方法二:使用环境变量定义密码
1、创建统一虚拟用户www
[root@test ~]# useradd -s /sbin/nologin -M www
[root@test ~]# id www
uid=1002(www) gid=1002(www) groups=1002(www)
2、创建虚拟用户验证密码文件并授权
[root@test ~]# echo '123456' > /etc/rsync.passwd
[root@test ~]# chmod 600 /etc/rsync.passwd
[root@test ~]# cat /etc/rsync.passwd
123456
3、使用密码文件传输
[root@test ~]# rsync -avzP /etc/fstab rsync_backup@10.0.0.60::backup --password-file=/etc/rsync.passwd
4、使用环境变量定义密码传输
[root@test ~]# export RSYNC_PASSWORD="123456"
[root@test ~]# rsync -avzP /etc/hosts rsync_backup@10.0.0.60::backup
网友评论