day 30 备份服务rsync

网络命令总结

ping命令

作用:测试命令是否可以ping通
选项:
-c :测试ping的次数
-w:测试Ping的次数
-i: 发送包的间隔时间
-q: 查看ping的结果,不显示过程
-f:快速ping

nc/telent /nmap命令

telnet: 检查主机的远程端口是否开启
telnet 10.0.0.200 22
nc 10.0.0.200 22
nmap -p [port ] 22 10.0.0.200
-p:设置本地主机使用的通信端口

tcpdump命令

作用:网络抓包命令 (命令行)
wireshark 图形化抓包软件
格式:tcpdump [选项]
-i: 指定监听的接口
-nn:用Ip地址进行监听
-c:指定抓包的次数
-X:把协议网关和包内容都以16进制显示
-w:将流量保存到文件当中
-r:读取raw packets文件

备份服务rsync

系统主机克隆说明
  1. 虚拟主机准备工作
    (1) 虚拟主机网络配置
    (2) 虚拟主机系统优化
  2. 主机克隆过程说明
    链接克隆:利用模板主机做为克隆主机生成链接克隆主机,节省资源空间,效率高,但是依赖模板主机,一旦模板主机删除,链接主机就不能使用了。
    完整克隆:独立于模板主机,浪费物理磁盘容量,效率低。
rsync概述

概念说明:rsync是一款开源的备份工具,可以在不同之间进行同步,可实现全量备份与增量备份,因此非常适合用于构集中式备份或异地备份等应用。
Rsync的监听端口号:873
rsync的运行模式:C/S
备份方式:
完全备份:将客户端的所有数据备份到服务端下,效率低下,占用空间。
增量备份:将客户端的数据增量备份到服务端下,效率高,节省空间,适合异地备份。
作用:
(1)用于将数据信息进行恢复;
(2)用于出现问题进行文件信息的对比。
(3)对网站服务数据进行统一管理。
增量备份实现的两种方式:
(1)比对文件属性;
(2)比对md5加密数据;用到的是md5sum命令,如果修改文件的信息,md5sum输出的信息会大有不同。或者可以用rsync -c /etc/hosts命令和md5sum会有一样的效果。

▽root@oldboy ~]# md5sum /etc/hosts
79cdfa52462ba75cac1c728451a045e6  /etc/hosts
[root@oldboy ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.5    lb01
10.0.0.6    lb02
10.0.0.7    web01
10.0.0.8    web02
10.0.0.9    web03
10.0.0.31   nfs01
10.0.0.41   backup
10.0.0.51   db01
10.0.0.61   m01
10.0.0.71   zabbix

~                                                                                                         
~                                                                                                                                                                                                  
"/etc/hosts" 13L, 336C written                                                               
[root@oldboy ~]# md5sum /etc/hosts
a14fefb7723d76ea86c2de2bce6bff6b  /etc/hosts
rsync的应用场景

推(push):将所有主机的数据推下服务端,会导致数据同步缓慢(适合少量数据备份)
拉(pull): 将服务器的数据下载到主机,会导致备份服务器开销大。
在工作中备份服务器设置的数量说明:
同一机房应该有多个备份服务器;
不同机房应该有多个备份服务器;
不同地址位置应该有多个备份服务器。
例如:中石油备份数据架构解决方案:两地三中心
需要备份什么样的数据:
1.内部人员就备份的数据信息包括:脚本信息或者代码信息,每个服务的配置文件,数据库文件,日志文件等。这些文件都以定时任务的方式进行数据备份;
2.外部人员备份的数据信息包括:主要是用户信息,视频,图片和附件信息。这些文件都以实时数据备份。

rsync的本地传输方式

Local: rsync [OPTION...] SRC... [DEST]
Rsync:命令
Option:选项
SRC:目标主机源文件
DEST:下载至本地哪个位置

[root@oldboy ~]# rsync /etc/hosts /tmp/
[root@oldboy ~]# ls /tmp/
hosts        vmware-root_5884-969520887   vmware-root_6057-1681202140  vmware-root_6134-1003139195
oldboy1.txt  vmware-root_5963-1690049222  vmware-root_6064-734560284
oldboy2.txt  vmware-root_6052-692291465   vmware-root_6108-960608207
oldboy3.txt  vmware-root_6054-700614155   vmware-root_6111-1983327635

[root@oldboy ~]# rsync -a oldboy /tmp/
[root@oldboy ~]# ls /tmp/
hosts                        vmware-root_6052-692291465   vmware-root_6108-960608207
oldboy                       vmware-root_6054-700614155   vmware-root_6111-1983327635
vmware-root_5884-969520887   vmware-root_6057-1681202140  vmware-root_6134-1003139195
vmware-root_5963-1690049222  vmware-root_6064-734560284
PS:可以看出,备份的是oldboy目录及以下的所有文件

[root@oldboy ~]# rsync  -a oldboy/ /tmp/
[root@oldboy ~]# ls /tmp/
hosts        vmware-root_5884-969520887   vmware-root_6057-1681202140  vmware-root_6134-1003139195
oldboy1.txt  vmware-root_5963-1690049222  vmware-root_6064-734560284
oldboy2.txt  vmware-root_6052-692291465   vmware-root_6108-960608207
oldboy3.txt  vmware-root_6054-700614155   vmware-root_6111-1983327635
PS:如果oldboy后面加/,备份的是下面的所有文件信息。
rsync备份的远程信息

Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Pull:下载,拉取命令
[USER@]:登录远程主机用户信息,默认使用当前用户进行连接
HOST::远程主机IP信息或者主机名称信息
SRC...:远程主机信息备份到本地信息
[DEST]: 将数据保存到本地主机路径
Push:上传,推命令
SRC...:本地主机信息备份到远程主机
[USER@]:登录远程主机用户信息,默认使用当前用户进行连接
HOST::远程主机IP信息或者主机名称信息
DEST:将数据保存到远程主机路径

[root@oldboy ~]# scp -r /etc/hosts 172.16.1.41:/tmp/
The authenticity of host '172.16.1.41 (172.16.1.41)' can't be established.
ECDSA key fingerprint is SHA256:qh/xYmE6E7fb4x5uxLP1ZgTA5W4Vsp/Kjy4VLOputcQ.
ECDSA key fingerprint is MD5:99:3d:3a:63:01:ed:d8:bf:14:ca:ab:34:29:9f:48:d1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.41' (ECDSA) to the list of known hosts.
[email protected]'s password: 
hosts                                                                        100%  336   465.0KB/s   00:00    

[root@backup ~]# ls /tmp/
hosts             vmware-root_5647-1958685219  vmware-root_6023-1715281389  yum.log
ks-script-1g4Paa  vmware-root_5931-1957964446  vmware-root_6057-1681202140
rsync守护进程配置方式
  • 服务端的配置方式
    第一步:检查软件是否安装
[root@backup ~]# rpm -qa | grep rsync
rsync-3.1.2-4.el7.x86_64

第二步:配置文件信息内容

[root@backup ~]# cat /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
注释信息:
# 管理备份目录的属主信息 uid = rsync
# 管理备份目录的属组信息 gid = rsync
# 备份服务的默认端口信息 port = 873
# 不让rsync以root用户运行,允许接收文件的完整属性#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
# 定义rsync服务用户连接认证的密码文件路径 secrets file = /etc/rsync.password
# 模块名称[backup]
# 模块注释 信息comment = "backup dir by oldboy"
# 定义接收备份数据目录 path = /backup

第三步:创建虚拟用户rsync

Useradd -M -s /sbin/nologin rsync

第四步:创建密码文件,并修改密码文件权限信息

[root@backup ~]# cat /etc/rsync.password
rsync_backup:oldboy123

第五步:创建备份目录,修改目录的属主和属组信息

[root@backup ~]# ll /backup/ -d
drwxr-xr-x 2 rsync rsync 6 Aug 12 19:06 /backup/
[root@backup ~]# chown   -R rsync.rsync /backup/    

第六步:启动或重启服务

Systemctl restart rsyncd
  • 客户端进行测试
[root@oldboy ~]# rsync -avz /root/read.sh  [email protected]::backup
Password: 
sending incremental file list
read.sh
rsync: chgrp ".read.sh.nkY1Sc" (in backup) failed: Operation not permitted (1)

sent 325 bytes  received 126 bytes  100.22 bytes/sec
total size is 450  speedup is 1.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]
rsync的原理

rsync的原理
第一步:客户端向服务端发送请求传输数据,数据内容包括命令信息,认证用户信息和传输数据信息。
第二步:服务端向客户端发送接收信息,并审核认证的用户,会回复提示输入密码的信息;
第三步:客户端接收到服务端的指令,并输入密码信息,发送请求并传输数据;
第四步:服务端接收到客户端的密码信息,并进行审核密码是否正确,正确则会发送客户端确认信息;
第五步:客户端向服务端发送数据进行传输,对用户信息进行转换------>rsync
第六步:服务端接收数据完毕,保存到备份目录当中,备份目录的属主为rsync。

rsync的命令格式
image.png
守护进程多模块的调用
  • 守护进程多模块的创建
[root@backup ~]# tail /etc/rsyncd.conf 
[sa_backup]
comment = "backup dir by oldboy"
path = /sa_backup
exclude from = /backup/sa_backup/oldboy/exclude.txt
[dev_backup]
comment = "backup dir by oldboy"
path = /backup/dev_backup
[dba_backup]
comment = "backup dir by oldboy"
path = /backup/dba_backup
  • 守护进程 数据排除功能
    --exclude :排除指定文件信息
    --exclude-from:排除多个文件信息
    服务端:
    exclude
    exclude from
    在全局模式中, 所有模块都可以生效;
    在局部模式中,只有设置exclude模块可以生效。
  • 守护进程无差异同步
    --delete 客户端数据向服务端无差异性传输数据。
  • 守护进程模式创建子目录
  • 守护进程模式访问控制策略
    白名单/黑名单
    第一种情况:只有允许的白名单策略,没有禁止黑名单,白名单可以放行,其它流量阻止;
    第二种情况:没有允许的白名单,只有禁止黑名单,黑名单阻止,其它放行;
    第三种情况:有白名单也有黑名单,对白名单放行,对黑名单阻止,默认允许。

你可能感兴趣的:(day 30 备份服务rsync)