Day 33 课堂笔记

rsync扩展

1、补充

1.实践排除复制

环境准备:

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  rsync_backup@172.16.1.41::backup

sending incremental file list

./

c

d

排除1到4

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

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

sending incremental file list

./

5

a

b

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

sending incremental file list

2

4

--exclude-from 从文件排除

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

sending incremental file list

./

16

17

18

19

20

paichu.txt

2.实践删除:

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

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

推送:

rsync -avz --delete /data/  rsync_backup@172.16.1.41::backup

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

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

rsync -avz --delete rsync_backup@172.16.1.41::backup /data/

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

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

--bwlimit=KBPS 限速。

2、企业案例

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

3、rsync添加模块

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

4、需备份内容

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

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

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

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

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

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

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

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

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

5、项目实战

Rsync 企业级全网备份项目

1、项目前言介绍

随着互联网大环境的不断蓬勃发展,社会上各个行业都不断转变思路,拓展自

己的业务领域,向着互联网企业进行转型,转型后的企业也在不断扩展着自身的互

联网架构.随着架构不断的扩展,架构中的服务器数量也在不断增多,由原来的几

台变为几十台,甚至几百台的规模。此时由于服务器数量的增多,对服务器中数

据的管理备份也随之变的复杂,传统的本地备份或简单的 scp 复制到存储服务器

的备份解决方案,已远远不能有效的解决规模壮大后的架构需求。因此急需一种

更为智能的解决方案来完成备份数据需求,保证整体架构数据的安全可靠性。

2、项目需求说明

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

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

要求如下:

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

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

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

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

名称外网IP内网IP主机名称

nginx web     服务器       10.0.0.7/24172.16.1.7/24web01

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

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

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 把备份成功或失败结果信息发给系统管理员邮箱中。

服务器说明备份目录目录说明备注

all serve/backup备份目录统一服务器本地备份目录,便于管理

all serve/var/spool/cron/roo定时任务服务配置文件

all serve/etc/rc.local开机自启动配置文件

all serve/server/scripts日常脚本目录统一服务器本地脚本目录,便于管理

web server/var/html/wwwweb 服务器站点目录mkdir -p /var/html/www

web server/app/logsweb 服务器访问日志路径mkdir –p /app/logs

解决方案

1、配置rsync服务

backup服务器配置好rsync

web01、nfs01配置好密码

参考:参考内容

2、web01服务器配置

1.需要解决的需求

1.需要备份的文件

/var/spool/cron/root

/etc/rc.local

/server/scripts

/var/html/www

/app/logs

2.删除7天以前的

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

3./backeup/IP

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

件按照时间名字保存

上传本地创建好以IP地址的文件即可

4.MD5校验

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

进行检查

5.推送数据

将打包好的文件上传即可

2.解决思路

在命令行执行命令一一实现功能后,再将命令写入脚本中,执行成功后再编写定时任务即可

1.环境准备

为虚拟环境因此需要创建没有的目录

mkdir -p /server/scripts /var/html/www /app/logs /backup

2.具体实现

命令行执行打包命令:

[root@web01 /]# tar zcvhf /backup/bak_$(date +%F_%w).tar.gz /var/spool/cron/root /etc/rc.local

/server/scripts /var/html/www /app/logs

编写脚本:

cd /server/scripts/

vim bak.sh


#!/bin/sh

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"

export RSYNC_PASSWORD=oldboy

IP=$(hostname -i)

mkdir -p /backup/$IP

#1.打包

tar zchf /backup/$IP/bak_${IP}_$(date +%F_%w).tar.gz /var/spool/cron/root /etc/rc.local /server/scripts /var/html/www /app/logs &>/dev/null &&\

touch /backup/$IP/bak_${IP}_$(date +%F_%w).flag &&\

#采集指纹

find /backup/ -type f -name "*$(date +%F_%w).tar.gz"|xargs md5sum >/backup/$IP/bak_${IP}_$(date +%F_%w).flag &&\

#2.删除

find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm -f &&\

#3.推送

rsync -az /backup/ rsync_backup@172.16.1.41::backup &>/dev/null

执行/bin/sh /server/scripts/bak.sh

检查backup上是否存在以本机地址的命名的文件

编写定时任务:

[root@web01 /server/scripts]# crontab -e

[root@web01 /server/scripts]# crontab -l|tail -2

######back.....

00 00 * * * /bin/sh /server/scripts/bak.sh >/dev/null 2>&1

[root@web01 /server/scripts]# find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm -f

ntfs服务器的脚本配置只需要把/var/html/www /app/logs这两个文件去掉即可

3、backup服务器配置

1.需要解决的需求

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

在备份服务器上对备份的数据是否完整进行检查

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

2.配置邮件

yum install mailx -y

teil -1 /etc/mail.rc

set from=13088229550@163.com smtp=smtp.163.com smtp-auth-user=13088229550@163.com  smtp-auth- password=xxxx  smtp-auth=login

systemctl reatart mail

其中password的数据是授权码

3.编写脚本:

#!/bin/sh

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

if [ $(date +%w) -eq 1 ]

then

:

else

    find /backup/ -type f -name "*.tar.gz" -mtime +180|xargs rm -f &&\

    find /backup/ -type f -name "*_$(date +%w).tar.gz" -mtime +7|xargs rm -f

fi

find /backup -type f -name "*$(date +%F_%w).flag"|xargs md5sum -c >/tmp/fail.log

mail -s "$(date +%F_+%T)backup data error" 1771617190@qq.com </tmp/fail.log

4.检验

首先查看自己的邮箱是否有邮件

参考答案:https://edu.51cto.com/course/8198.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容