架构-rsync服务实践-04
2019-05-30 本文已影响0人
linux_龍
1.主机角色 外网(NAT) 内网(LAN) 主机名称
rsync服务端 10.0.0.41 172.16.1.41 backup
rsync客户端 10.0.0.31 172.16.1.31 nfs
服务实践
1.安装rsync
2.配置/etc/rsyncd.conf
3.创建用户(运行rsync服务的用户身份)
4.创建虚拟用户密码文件,授权600安全权限
5.启动rsync服务并将rsync加入开机自启动
6.检查rsync 873端口是否处于监听状态
7.rsync 客户端继续配置虚拟用户密码,并授权600安全权限
1.安装rsync
[root@backup ~]# yum install -y rsync
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
epel | 5.3 kB 00:00
extras | 3.4 kB 00:00
os | 3.6 kB 00:00
updates | 3.4 kB 00:00
(1/3): epel/7/x86_64/updateinfo | 977 kB 00:00
(2/3): updates/7/x86_64/primary_ | 5.0 MB 00:00
(3/3): epel/7/x86_64/primary_db | 6.7 MB 00:00
Resolving Dependencies
--> Running transaction check
---> Package rsync.x86_64 0:3.1.2-4.el7 will be updated
---> Package rsync.x86_64 0:3.1.2-6.el7_6.1 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
======================================================
Package Arch Version Repository
Size
======================================================
Updating:
rsync x86_64 3.1.2-6.el7_6.1 updates 404 k
Transaction Summary
======================================================
Upgrade 1 Package
Total download size: 404 k
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
rsync-3.1.2-6.el7_6.1.x86_64.rpm | 404 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : rsync-3.1.2-6.el7_6.1.x86_64 1/2
Cleanup : rsync-3.1.2-4.el7.x86_64 2/2
Verifying : rsync-3.1.2-6.el7_6.1.x86_64 1/2
Verifying : rsync-3.1.2-4.el7.x86_64 2/2
Updated:
rsync.x86_64 0:3.1.2-6.el7_6.1
Complete!
2.配置 /etc/rsyncd.conf
[5:37 root@backup ~]# vim /etc/rsyncd.conf
##Rsync server
##created by oldboy 15:01 2009-6-5
##rsyncd.conf start##
uid = rsync #UID管理备份目录的用户 (虚拟用户)
gid = rsync #GID管理备份目录的用户组(虚拟用户)
use chroot = no #安全功能,数据是否锁定到备份目录
fake super = yes #不用root用户也可以存储文件的完整属性
max connections = 2000 #最大连接数,同时多少客户端访问
timeout = 600 #超时时间(秒)
pid file = /var/run/rsyncd.pid #pid进程号 所在文件
lock file = /var/run/rsync.lock #锁文件lock 比如两个窗口同时运行yum
log file = /var/log/rsyncd.log #日志文件,查看报错,排错必备
ignore errors #忽略错误
read only = false #关闭只读
list = false #不允许列表
hosts allow = 172.16.1.0/24 #allow准许哪些主机可以访问
#hosts deny = 0.0.0.0/32 #deny 拒绝哪些主机不可以访问
auth users = rsync_backup #指定认证用户(不存在),远程虚拟链接用户
secrets file = /etc/rsync.password #存放密码的文件,权限 必须600
###################################
[data] #模块名 一半与目录的名字相同
comment = www by old0boy 13:14 2019-5-20 #说明注释
path = /data #指定服务端用户备份的共享目录
3.创建用户(运行rsync服务的用户身份)
1.(1)创建rsync用户,不允许登录不创建家目录
[root@backup ~]# useradd -s /sbin/nologin -M rsync
1.(2)检查创建的用户
[root@backup ~]# id rsync
uid=1000(rsync) gid=1000(rsync) groups=1000(rsync)
1.(3)创建备份目录
[root@backup ~]# mkdir -p /backup
1.(4)授权/backup用户的所属用户组,所属用户主为rsync
[root@backup ~]# chown -R rsync.rsync /backup
chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。 。
1.(5)查看/backup目录的所属用户主.用户组
[root@backup /]# ll
total 68
drwxr-xr-x 2 rsync rsync 4096 Jun 3 16:11 backup
4.创建虚拟用户密码文件,授权600安全权限
设置虚拟用户密码文件
[root@backup /]# echo "rsync_backup:123456" >/etc/rsync.passwd
授权600的安全权限
[root@backup /]# chmod 600 /etc/rsync.passwd
5.启动rsync服务,设置开机自启动
启动rsync服务
[root@backup /]# systemctl start rsyncd
设置开机自启动
[root@backup /]# systemctl enable rsyncd
6.检查rsync 873端口是否处于监听状态
Linux netstat命令用于显示网络状态。
利用netstat指令可让你得知整个Linux系统的网络情况。
-l或--listening 显示监控中的服务器的Socke
-n或--numeric 直接使用IP地址,而不通过域名服务器。
-t或--tcp 显示TCP传输协议的连线状况。
-p或--programs 显示正在使用Socket的程序识别码和程序名称。
[root@backup /]# 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 13078/rsync
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 877/sshd
tcp6 0 0 :::873 :::* LISTEN 13078/rsync
7.rsync客户端仅需配置虚拟用户的密码,并授权600安全权限
创建密码文件
[root@nfs01 /etc]# mkdir -p /etc/rsync.password
指定客户端用户密码文件
[root@nfs01 ~]# echo "123456" > /etc/rsyncd.password
授权权限600
[root@nfs01 /etc]# chmod 600 /etc/rsync.password
2.实战
实战-1
客户端推送 backup目录下所有内容至rsync服务端
[root@nfs01 /etc]# rsync -avz /backup/ rsync_backup@172.16.1.41::backup/
Password:
sending incremental file list
rsync: change_dir "/backup" failed: No such file or directory (2)
sent 24 bytes received 20 bytes 8.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]
实战-2
客户端拉取rsync服务端data模块数据至本地客户端/backup
[root@nfs01 /]# rsync -avz rsync_backup@172.16.1.41::data /backup/
Password:
receiving incremental file list
·····
····sent 476 bytes received 2,937 bytes 758.44 bytes/sec
total size is 22,450 speedup is 6.58
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1650) [generator=3.1.2]
实战-3
rsync实现实时同步
>拉取远端数据:远端与本地保持一致,本地没有远端会被删除,
造成服务器端数据丢失
[root@nfs01 /]# rsync -avz --delete rsync_backup@172.16.1.41::backup/ /data/
···
···
yum/vars/infra
sent 74,519 bytes received 161,086,014 bytes 14,013,959.39 b
total size is 198,000,247 speedup is 1.23
rsync error: some files/attrs were not transferred (see previo
[root@nfs01 /]# sent 476 bytes received 2,937 bytes 758.44
>推送数据至远端:本地与远端保持一致,本地没有远端会被删除,造成服务器端数据丢失
[root@nfs01 /]# rsync -avz --delete /data rsync_backup@172.16.1.41::backup/
data/yum/vars/infra
sent 161,085,278 bytes received 74,544 bytes 14,013,897.57 bytes/sec
total size is 197,996,266 speedup is 1.23
实战-4
rsync的limit限速
某用户使用rsync拉取备份数据时,由于文件过大导致内部交换机带宽被沾满,导致用户请求无法响应
[root@nfs01 /]# rsync -avz --bwlimit=1 rsync_backup@172.16.1.41::backup/ /data/
Password:
receiving incremental file list
3.rsync备份案列
已知三台服务器主机名为web01.backup.nfs01