rsync服务

rsync流程

1. rsync概述

rsync常用的传输工具,多台服务器之间传输数据,具备全量同步和增量同步
备份服务: rsync+定时任务 实现定时备份
官网: 传送门 http://rsync.samba.org
端口: 873
rsync运行模式: c/s client(客户端)/server(服务端) rsync守护进程模式

2. rsync应用场景

.定时任务+rsync(服务)

3. 部署rsync服务

(1)服务端部署

安装部署软件
#rpm -qa|grep rsync
yum install -y rsync 
创建管理备份目录以及数据用户信息
useradd rsync -M -s /sbin/nologin
创建备份数据目录
mkdir /backup
chown rsync.rsync /backup/ 
创建用户列表文件
echo 'rsync_backup:oldboy123' >/etc/rsync.password
chmod 600 /etc/rsync.password
编写配置文件
#vi /etc/rsyncd.conf
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 300
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
[backup]
comment = "backup dir by oldboy"
path = /backup

-----------------------------架构备份服务文件配置讲解---------------------------------------------------------
/etc/rsyncd.conf
uid = rsync --- 指定rsync服务备份目录或数据信息管理用户信息
gid = rsync --- 指定rsync服务备份目录或数据信息管理用户组信息
port = 873 --- 指定服务程序端口信息
fake super = yes --- 将uid指令指定用户可以伪装为管理员用户
use chroot = no --- 提高数据备份安全性,前提需要将备份目录权限与uid信息设置root用户 ???鸡肋
max connections = 200 --- 设置最大连接数
timeout = 300 --- 设置连接会话超时时间(闲置状态)
pid file = /var/run/rsyncd.pid --- 记录服务程序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 属主属组 root)
[backup] --- 模块信息 模块下面的信息成为局部配置信息
comment = "实现运维人员备份数据" --- 模块注释说明
path = /backup --- 数据备份目录
[devdata]
comment = "实现开发人员备份数据"
path = /devdata
启动服务程序
systemctl start rsyncd

ps -ef|grep rsync 查询程序是否启动
netstat -lntup|grep rsync 查询程序是否启动

(2)客户端部署过程

交互式实现数据传递过程:
rsync -avz /home/oldboy/oldboy.txt rsync_backup@172.16.1.41::backup
#此时会提示输入密码
oldboy123
免交互实现数据传递过程:
两种方式:
方式一:在客户端创建一个密码文件(主要使用
echo oldboy123 >/etc/rsync.password

chmod 600 /etc/rsync.password
##免密传输:--password-file=/etc/rsync.password
rsync -avz /etc rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
方式二:配置环境变量实现免交互
RSYNC_PASSWORD --- 设置环境变量实现免交互

echo 'export RSYNC_PASSWORD="oldboy123"' >> /etc/profile

rsync -avz /etc/selinux/config rsync_backup@172.16.1.41::backup

参数信息总结:-avz


-v, --verbose increase verbosity
显示传输过程信息
-z, --compress compress file data during the transfer
文件在传输时做压缩处理
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
执行-a参数等价于执行-rlptgoD
-r, --recursive recurse into directories
进行递归复制数据信息(可以实现目录传输)
-l, --links copy symlinks as symlinks 没有任何作用
可以复制软链接文件 
-L, --copy-links transform symlink into referent file/dir 
将链接文件所执行源文件信息做备份
-p, --perms preserve permissions
维持权限属性信息不变 
-t, --times preserve modification times
维持文件修改时间属性不变
-o, --owner preserve owner (super-user only) 
维持文件属主信息不变
-g, --group preserve group
维持文件属组信息不变
-D same as --devices --specials 
复制传输设备文件信息可以保持设备文件属性信息不变 
-P same as --partial --progress 
显示数据传输进度信息
--belete 实现无差异数据同步
--bwlimit 实现数据传输限速功能 KBps
--exclude 实现数据备份排除功能
--exclude-form 实现数据备份排除功能
--password-file 读取密码文件实现免交互传输数据
--port 指定访问备份服务端口信息

rsyncy应用

--delete 让目标目录和源目录一致
rsync -avzP /liu  --exclude-from=liu.txt  [root@10.0.0.123:/liu](https://links.jianshu.com/go?to=mailto%3Aroot%4010.0.0.123%3A%2Fliu)

from   要从哪里来      liu.txt   里面是要排除的东西

第一步编辑一个文件最好是在相对应的目录中,写入要排除的内容,可以是绝对,也可以是相对

三:守护进程创建备份目录

客户端要在服务端备份数据,可以在相对应的目录后加入所要的目录

正确示范:

rsync -avzP /liu  --exclude-from=liu.txt  [root@10.0.0.123:/liu/yan](https://links.jianshu.com/go?to=mailto%3Aroot%4010.0.0.123%3A%2Fliu%2Fyan)

[root@10.0.0.123:/liu/yan](https://links.jianshu.com/go?to=mailto%3Aroot%4010.0.0.123%3A%2Fliu%2Fyan)   /liu后面所跟的/yan 就是客户端向服务器自己创建的目录

--exclude 排除

1.正确示范

rsync -avzP /liu  --exclude=liu1--exclude=1.txt[root@10.0.0.123:/liu](https://links.jianshu.com/go?to=mailto%3Aroot%4010.0.0.123%3A%2Fliu)

不要/liu下的liu1,并且不要1.txt

错误:rsync -avzP  /liu --exclude=/liu/liu1 --exclude=1.txt[root@10.0.0.123:/liu](https://links.jianshu.com/go?to=mailto%3Aroot%4010.0.0.123%3A%2Fliu)

不要/liu下的liu1,并且不要1.txt

1.    排除参数后面数据信息,不能写绝对路径
2.    排除错误后面数据信息,不能写相对路劲

总结:排除的路径信息,需要编写为指定目录的相对路径

--bwlimit 限速

rsync  -avz --bwlimit=10k   /tmp    rxync_backup@10.0.0.41::backup

守护进程的访问控制

控制不是所有任何人都能向服务器传输数据

Vi  /etc/rsync.conf   配置中的白名单和黑名单

Hosts allow  =  10.0.0.123/24       白名单

Hosts deny  =   0.0.0.0/24          黑名单

第一种情况:白名单控制:只允许,其他的都拒绝

第二种情况:黑名单控制:只拒绝,其他的偶可以

第三种情况:即允许又拒绝   优先白名单



介意:尽量只使用一种名单
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容