集群第一阶段day33-03-rsync服务及搭建备份服务器2(周二)

今天的主角是:web01

实践排除复制:

NFS01:

[root@nfs01 ~]# mkdir /data -p

[root@nfs01 ~]# cd /data

[root@nfs01 /data]# touch {a..d}

[root@nfs01 /data]# ls

a  b  c  d

--exclude 排除参数

例:排除 a b

[root@nfs01 /data]# rsync -avz /data/ --exclude=a --exclude=b  [email protected]::backup

sending incremental file list

./

c

d

排除1到4

[root@nfs01 /data]# touch {1..5}

[root@nfs01 /data]# rsync -avz /data/ --exclude={1..4}  [email protected]::backup

sending incremental file list

./

5

a

b

[root@nfs01 /data]# rsync -avz /data/ --exclude={1,3,a}  [email protected]::backup

sending incremental file list

2

4

--exclude-from 从文件排除

[root@nfs01 /data]# rsync -avz /data/ --exclude-from=./paichu.txt  [email protected]::backup

sending incremental file list

./

16

17

18

19

20

paichu.txt

实践删除:

rsync作为镜像,相当于raid1,让两台服务器目录保持一致。

--delete 让两台服务器目录保持一致

推送:

rsync -avz --delete /data/  [email protected]::backup

本地目录有啥,远端就有啥。

注意:远端目录是不是东西更多,多了东西会被删除。提前备份backup对应的目录。

rsync -avz --delete [email protected]::backup /data/

远端有啥。本地目录就有啥,注意本地/data目录。把/data改成根。提前注意备份本地/data

--partial 支持大文件断点续传

--bwlimit=KBPS 限速。

企业案例:

某上市公司,白天高峰期某DBA人员从数据库服务器通过rsync将上百GB数据复制到备份服务器,导致数据库库服务器带宽占满,造成用户无法访问网站的悲剧。其实可以利用rsync限速功能,将复制速度限制在剩余带宽的1/3或者1/2,可能就不会出现故障了

1)最简单的实现,可以在配置文件结尾加如下内容(特殊底纹部分):

[root@backup ~]# cat /etc/rsyncd.conf

#rsync_config_______________start

#created by oldboy

#site: http://www.oldboyedu.com

uid = rsync

gid = rsync

use chroot = no

fake super = yes

max connections = 200

timeout = 600

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 = welcome to oldboyedu backup.

path = /backup/

[data]        #<==新模块。

path = /data/  #<==新备份目录。

#除了增加以上两行外,读者也可以设定更多的独立配置参数,例如:独立虚拟用户,独立密码文件等。

2)建立目录并授权。

[root@backup ~]# mkdir -p /data

[root@backup ~]# chown -R rsync.rsync /data

[root@backup ~]# ls -ld /data

drwxr-xr-x 2 rsync rsync 6 4月  16 10:04 /data

3)重启rsync服务(只要修改配置,就考虑重载服务)

[root@backup ~]# systemctl restart rsyncd

4)从客户端访问测试

[root@backup ~]# ls /data

etc

1、内部人员产生的数据(定时备份足矣):

程序员开发代码(他电脑上)==>代码服务上(git/svn代码版本管理)==>测试环境测试===>正式环境

原则上程序代码可以不备份。

运维人员,写个定时任务,写个备份脚本,更改或增加服务配置rsyncd.conf,需要备份

运维人员修改配置(测试服务器)==>代码服务器上(git/svn代码版本管理)==>测试环境测试===>正式环境

原则上运维人员的变更可以不备份。

2、用户产生的数据(必须实时备份)

图片、视频等文件是放在存储服务器上的,任意时刻都可能传上来,必须实时备份。

文本(博客文章),放在数据库里,,任意时刻都可能发布,必须实时备份。

企业案例:

2.1.2 项目需求说明

某公司里有一台 web 服务器,里面的数据很重要,但是如果硬盘坏了,数据

就会丢失,现在领导要求把数据做备份,这样 web 服务器数据丢失可以进行恢复,

要求如下:

每天晚上 00 点整在 web 服务器 A 上打包备份系统配置文件、网站程序目录

及访问日志并通过 rsync 命令推送到服务器 B 上备份保留(备份思路可以是先在

本地按日期打包,然后再推到备份服务器 B 上)

已知 3 台服务器主机名分别为 web01、backup 、nfs01,主机信息见下表:

表 2-7 全网备份主机信息表

服务器说明

外网 IP(NAT) SSH

内网 IP(NAT) 交换数据

用 主机名称

nginx web 服务器 10.0.0.7/24 172.16.1.7/24 web01

NFS 存储服务器 10.0.0.31/24 172.16.1.31/24 nfs01

rsync 备份服务器 10.0.0.41/24 172.16.1.41/24 backup

 备份要求

每天晚上 00 点整在 Web 服务器上打包备份系统配置文件、网站程序目录及

访问日志并通过 rsync 命令推送备份服务器 backup 上备份保留

2.1.3 具体备份需求

 所有服务器的备份目录必须都为/backup

 要备份的系统配置文件包括但不限于:

a) 定时任务服务的配置文件 (/var/spool/cron/root) (适合 web 和 nfs 服

务器)。

b) 开机自启动的配置文件 (/etc/rc.local) (适合 web 和 nfs 服务器)。

c) 日常脚本的目录 (/server/scripts)。

 Web 服务器站点目录假定为/var/html/www,如果没有可以先模拟创建。

 Web 服务器访问日志路径假定为/app/logs,如果没有可以先模拟创建。

 Web 服务器本地保留打包后的 7 天备份数据即可(本地留存不能多于 7 天,

因为太多硬盘会满) 。

 备份服务器 backup 上,保留最近 7 天的备份数据,同时保留 6 个月内每周一

的所有数据副本。

 备份服务器上,要按照备份数据服务器的内网 IP 为目录保存备份,备份的文

件按照时间名字保存。

 需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据是否完整

进行检查。

 每天早晨 8:00 把备份成功或失败结果信息发给系统管理员邮箱中

在web01写脚本:


集群第一阶段day33-03-rsync服务及搭建备份服务器2(周二)_第1张图片

然后再在nfs写脚本:


集群第一阶段day33-03-rsync服务及搭建备份服务器2(周二)_第2张图片

在backup写脚本:

集群第一阶段day33-03-rsync服务及搭建备份服务器2(周二)_第3张图片

最后在backup写定时任务:


你可能感兴趣的:(集群第一阶段day33-03-rsync服务及搭建备份服务器2(周二))