1.先准备好虚拟机
主机名 网卡etho 网卡eth1 用途
web01 10.0.0.7/24 172.16.1.7/24 nginxweb服务器【未来部署】
NFS01 10.0.0.31/24 172.16.1.31/24 NFS储存服务器【未来部署】
backup 10.0.0.41/24 172.16.1.41/24 rsync储存服务器
2.rsync在backup安装流程
1.yum -y install rsync 安装ysync
----------------------------------------
2.rpm -qc rsync #查看服务的配置文件
/etc/rsyncd.conf
/etc/sysconfig/rsyncd
------------------------------------------------
3.cp /etc/rsyncd.conf{,.bak} #备份配置文件
--------------------------------------------------
4.#配置/etc/rsyncd.conf文件
vi /etc/rsyncd.conf
uid = www
gid = www
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.passwd
log file = /var/log/rsyncd.log
#####################################
[backup]
comment = welcome to oldboyedu backup!
path = /backup
[data]
path = /data
--------------------------------------------
5.mkdir -p /backup #创建备份目录
-----------------------------------------
mkdir -p /data
-------------------------------------------------
6.groupadd www -g666 #创建用户组
--------------------------------------------------
useradd www -u 666 -g 666 -M -s /sbin/nologin #创建虚拟用户
-----------------------------------------------------------------
id www #检测创建
----------------------------------------
uid=666(www) gid=666(www) 组=666(www)
-------------------------------------------------
7.chown -R www.www /backup/ #给备份目录授权
-------------------------------------------------
chown -R www.www /data/
----------------------------------------------------
8.ll -d /backup/ /data/ 检测创建
67791369 drwxr-xr-x 2 www www 6 2020-01-03 21:29:20 /backup//
101465103 drwxr-xr-x 2 www www 6 2020-01-03 21:29:24 /date//
----------------------------------------------------------------
9.echo "rsync_backup:oldboy" >/etc/rsync.passwd #创建密码文件
------------------------------------------------------------------
chmod 600 /etc/rsync.passwd #授权密码文件
---------------------------------------------------------------
10.systemctl start rsyncd #启动rsync服务
----------------------------------------------------
systemctl status rsyncd|grep active
Active: active (running) since 五 2020-01-03 21:36:35 CST; 21s ago
---------------------------------------------------------------------------
systemctl enable rsyncd #设置开机自启动
3.配置内容意思
uid = www # 运行进程的用户
gid = www # 运行进程的用户组
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 # 定义接收备份数据目录
4.客户端操作流程
1.yum -y install rsync 安装rsync
-------------------------------------------
2.
echo "oldboy" >/etc/rsync.passwd #创建密码文件
chmod 600 /etc/rsync.passwd #授权密码文件
3.#客户端测试 试着推送拉取文件目录
rsync -avz /etc/hosts root@172.16.1.41:/tmp #推送hosts到服务端
rsync -avz -e 'ssh -p 22' root@172.16.1.41:/etc/hosts /tmp #从服务端加密拉取hosts到本地
4.客户端上传数据到backup和data模块
rsync -avzP --password-file=/etc/rsync.passwd hostname.txt rsync_backup@10.0.1.41::backup
rsync -avzP --password-file=/etc/rsync.passwd hostname.txt rsync_backup@10.0.1.41::data
5.客户端下载数据到本地目录
rsync -avzP --password-file=/etc/rsync.passwd rsync_backup@10.0.1.41::data /test/
5.扩展
1.rsync的limit限速
#企业案例: 某 DBA 使用 rsync 拉取备份数据时,由于文件过大导致内部交换机带宽被沾满,导致用户的请求无法响应
export RSYNC_PASSWORD=oldboy
rsync -avz --bwlimit=1 rsync_backup@172.16.1.41::backup /data/
#限制传输带宽为1MB/s
[root@nfs /test]# rsync -avzP --bwlimit=1 bigfile.txt rsync_backup@10.0.1.41::backup
sending incremental file list
bigfile.txt
92,995,584 8% 1.01MB/s 0:15:51
-----------------------------------------------------
2.rsync实现无差别同步
危险,慎用!
#拉取远端数据:远端与本地保持一致,远端没有,本地有会被删除, 造成客户端数据丢失
export RSYNC_PASSWORD=oldboy
rsync -avz --delete rsync_backup@172.16.1.41::backup /data/
#推送数据至远端:本地与远端保持一致, 本地没有,远端会被删除, 造成服务器端数据丢失
export RSYNC_PASSWORD=oldboy
rsync -avz --delete /data/ rsync_backup@172.16.1.41::backup