一键部署rysnc实现全网备份

需要的工具:ansible 批量管理工具

思路:

实现一键自动化安装好rysnc备份服务器,实现全网备份

rysnc配置文件,是在管理机上,推送到我们的rysnc服务器上的,所以我们可以随时可以在管理机修改我们的rysnc服务器上的配置文件

rysnc配置文件写两个模块 backup nfsbakcup 就是两个备份共享的目录

backup    共享目录是存放全网备份的数据

nfsbackup共享目录是备份我们nfs服器上的数据实现实时同步

客户端需要向rsync备份服务器推送数据,一天一次,写了两个脚本,一个是备份全网所有机器的系统配置文件,一个是备份web服务器上的程序文件脚本,

客户端备份程序脚本放在管理机上,管理机通过复制到客户机上,添加定时任务,每天晚上00点执行一次。

管理机上的目录规划:

剧本目录:/etc/ansible/playbook/

一键部署备份服务器剧本文件名:  rsyncserver.yml

rsyncserver.yml 此剧本主要作用:实现rsync备份服务器搭建

脚本目录:server/script/

脚本文件名:sysconf-backup.sh打包备份系统主要文件,将备份的文件推送到备份服务器上

配置文件目录:/server/configfile/

rsync服务的主配置文件:rsyncd.conf

mail.rc 邮件的配置文件,实现检查备份数据完整性本次以QQ邮箱为主

ansible实现一键搭建rsync

[[email protected] playbook]# vim rsyncserver.yml

- hosts: rsyncserver

tasks:

- name: 1:安装 rysnc

yum: "name=rsyncstate=installed"

- name: 2:rsync配置文件

copy:"src=‘/server/configfile/rsyncd.conf‘ dest=‘/etc‘"

- name: 3:创建rsync服务的虚拟用户

user: "name=‘rsync‘shell=/sbin/nologin createhome=no"

- name: 4:创建共享目录backup并且修改属组属主权限

file: "path=/backupstate=directory owner=rsync group=rsync"

- name: 5:创建共享目录nfsbackup并且修改属组属主权限

file:"path=/nfsbackup state=directory owner=rsync group=rsync"

- name: 6:创建虚拟认证用户密码文件并且修改权限

shell: "echorsync_backup:123456 >/etc/rsync.password && chmod 600/etc/rsync.password "

- name: 7:启动rsync

shell: "rsync--daemon"

- name: 8:加入到开机自启动中

shell: "[ `egrep‘rsync --daemon‘ /etc/rc.local |wc -l` -eq 1 ] || echo -e ‘#rsync start\\nrsync--daemon‘ >> /etc/rc.local  "

- name: 9:rsync 服务端配置完成

shell: "echo rsync配置完成"

- name: 邮箱配置文件,检查全网备份数据完整性发送到邮箱

copy:"src=/server/configfile/mail.rc dest=/etc"

1.1客户端备份系统配置文件到backup目录中,然后推送到备份服务器上剧本

次脚本主要是推送我们m01备份系统配置文件脚本到客户端服务器上,然后添加定时任务,实现每天晚上00点推送我们备份的系统配置文件到备份服务器

m01服务端的配置剧本

[[email protected] playbook]# vim rsync-client-sysconf-backup.yml

- hosts: client-sysconf-backup

tasks:

- name: 1:rsync客户端密码文件并且修改密码文件权限

shell: "echo‘123456‘> /etc/rsync.password && chmod 600 /etc/rsync.password"

- name: 2:创建备份目录backup和脚本目录

shell: "mkdir -p/backup && mkdir -p /server/script"

- name: 3:推送系统配置文件打包脚本

copy:"src=/server/script/sysconf-backup.sh dest=/server/script/"

- name: 4:每天晚上0点晚上打包备份文件,并且推送到备份服务器

cron: "name=‘Everyday 00 backup sysconfig to rsync by Kaile‘ minute=00 hour=

00 job=‘/bin/sh /server/script/sysconf-backup.sh‘"

1.1.1客户端备份系统配置文件数据推送到备份服务器脚本

此脚本是系统配置文件备份脚本,可以实现所有机器,备份系统配置文件。

主要作用备份系统常用配置文件

利用md5加密备份的配置文件

将我们每天备份的系统配置文件和加密的md5文件每天00点发送到备份服务器上

删除本地7天以前的数据

[[email protected] script]# vim sysconf-backup.sh

#!/bin/bash

IP=`hostname  -I |cut -d" " -f2`

IPDIR="/backup/${IP}"

#创建打包备份目录

mkdir -p $IPDIR

#backup sysconfig

cd / && tar -czPhf $IPDIR/sysconfig_$(date+%F-week0%w).tar.gz ./var/spool/cron/root

./etc/rc.local./server/scripts ./etc/sysconfig/iptables >/dev/null 2>&1

#check backup sysconfig

find $IPDIR/ -type f -name "*$(date +%F-week0%w).tar.gz" |xargs md5sum > ${IPDIR}/md

5sum_$(date +%F-week0%w).txt

#Push推送 sysconfig to rsync backup server

rsync -az /backup/$IP [email protected]::backup --password-file=/etc/rsync.pa

ssword

#delete +7 day  backup  data

rm -rf $(find $IPDIR  -type f -mtime +7)

1.2客户端备份website服务剧本

m01剧本备份web程序

[[email protected] playbook]# vim rsync-client-website-backup.yml

- hosts: client-website-backup

tasks:

- name: 1:rsync客户端密码文件并且修改密码文件权限

shell: "echo‘123456‘> /etc/rsync.password && chmod 600 /etc/rsync.password"

- name: 2:创建备份目录backup和脚本目录

shell: "mkdir -p/backup && mkdir -p /server/script"

- name: 3:推送website程序文件打包脚本

copy:"src=/server/script/website-backup.sh dest=/server/script/"

- name: 4:每天晚上0点晚上打包备份文件,并且推送到备份服务器

cron: "name=‘Everyday 00 backup website to rsync by Kaile‘ minute=00 hour=00 job=‘/bin/sh/server/script/website-backup.sh‘"

1.2.1客户端备份website程序文件数据推送到备份服务器脚本

客户端备份目录是:web172.16.1.8推送到备份服务器也是这个目录

[[email protected] script]$vim website-backup.sh

#!/bin/bash

IP=`hostname -I |cut -d " " -f2`

IPDIR="/backup/web${IP}"

#创建打包备份website目录

mkdir -p $IPDIR

#backup website data

cd /&& tar -czPhf $IPDIR/nginx_$(date +%F-week0%w).tar.gz/application/nginx/html/

#backup website log

cd /&& tar -czPhf $IPDIR/web_log_$(date +%F-week0%w).tar.gz/application/nginx/logs/

#check backup website

find $IPDIR/ -type f -name "*$(date+%F-week0%w).tar.gz" | xargs md5sum > ${IPDIR}/md5sum_$(date+%F-week0%w).txt

#Push推送 website  to rsync backupserver

rsync -az $IPDIR [email protected]::backup --password-file=/etc/rsync.password

#delete +7 day backup  data

rm -rf $(find $IPDIR  -type f -mtime +7)

1.3备份服务器检查每天备份的数据完整性

系统的配置文件,和web服务器程序文件,并且每天发送邮件通知

[[email protected] script]# vim check-sysconfig-backup.sh

#!/bin/bash

#check sysconfig website data

find /backup/ -type f  -name"*$(date +%F-week0%w).txt"| xargs md5sum -c >/tmp/md5-$(date+%F-week0%w).txt

#邮件通知

mail -s "backup date " [email protected]  </tmp/md5-$(date +%F-week0%w).txt>/dev/null 2>&1

#delete +180 day  01

rm -rf $(find /backup/ -type f -mtime +180  ! -name "*$(date+%F-week01).tar.gz")

1.4QQ邮箱配置文件

#mail  config

set bsdcompat

set [email protected]

set smtp=smtp.qq.com

set [email protected]

set smtp-auth-password=odigxgzaschvbijd

set smtp-auth=login

set smtp-use-starttls

set ssl-verify=ignore

set nss-config-dir=/etc/pki/nssdb

时间: 2024-12-21 02:31:29

一键部署rysnc实现全网备份的相关文章

最最基础综合架构搭建部署过程——rsync与全网备份

1.rsync服务1.1备份服务的作用将数据服务器里的数据统一存储备份到一台服务器1.2.rsync--服务的安装部署rsync的部署过程为服务端和客户端1.2.1.服务端部署第一个历程:安装软件程序Yum install -y rsync第二个历程:编写配置文件vim /etc/rsyncd.conf第三个历程:创建虚拟用户信息Useradd -M -s /sbin/nologin rsync第四个历程:创建密码文件echo "rsync_backup:oldboy123" >

全网备份

1.1全网备份项目介绍说明: 将全网架构中所有服务器上重要的数据进行汇总备份保存 自动化:数据信息的自动备份 规范化:避免备份数据出错 1.2  全网备份项目实施过程 ①. 规划定义好备份服务器 a 部署rsync备份服务(采用rsync守护进程方式) b 编写脚本文件管理备份数据信息 c 编写定时任务执行脚本管理数据(难点) ②. 确认验证好架构服务器 a 验证rsync备份服务 b 编写脚本文件统一备份数据信息(难点) c 编写定时任务执行脚本备份数据 1.3 全网备份项目rsync守护进程

项目-第六次全网备份上机考试

全网备份案例 备份全网服务器数据生产架构方案案例模型 企业案例:rsync上机实战考试题: 某公司里有二台Web服务器为web01和web02,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求你把数据在其他机器上做一个周期性定时备份.要求如下: 每天晚上00点整在Web服务器web01和web02上打包备份网站程序目录并通过rsync命令推送到服务器B上备份保留 (备份思路可以是先在本地按日期打包,然后再利用rsync推到备份服务器上). 具体要求如下: 1)Web服务器web01

linux运维、架构之路-全网备份项目方案

1.项目需求说明 某公司有多台服务器,里面的数据很重要,如果磁盘坏了,数据就会丢失,所以公司要求把重要服务器数据备份以便出现问题时可以进行恢复,要求:每天晚上00点整在所有服务器上打包备份系统配置文件.网站程序目录及访问日志并通过rsync命令推送备份服务器backup上备份保留(备份思路可以是先在本地按日期打包,然后再推到备份服务器backup上) 2.具体需求规划 所有服务器的备份目录必须一致 /backup/ 要备份的系统配置文件包括但不限于: 一.定时任务服务器的配置文件(/var/sp

Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践)

转载:http://www.cnblogs.com/EasonJim/p/6295372.html Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践) 前提: 这一篇是继上一篇http://www.cnblogs.com/EasonJim/p/6092938.html的真实项目实践. 思路和大致实现步骤请参照上一篇文章. 注意:这篇文章涉及到两台服务器:1为测试服务器.2为正式服务器.且,两台服务器都必须安装了jenkins. 注意2:这里所说的一键部署是指从测试服务器到

全网备份+NFS存储+单点实时同步.docx

目  录 老男孩教育 linux 运维就业班第八和九关(周)课后学习效果能力上机大考察... 1 1.1 逻辑图... 1 1.2 50 台集群服务器全网数据备份解决方案... 1 1.2.1 一.搭建rsync备份服务器... 3 1.2.2 二.web01本地测试... 7 1.2.3 web01本地脚本... 7 1.2.4 本地定时任务... 8 1.2.5 backup服务器上脚本... 8 1.2.6 backup定时任务... 8 1.3 网站集群后端 NFS 共享存储搭建及优化解

Jenkins测试环境到生产环境的一键部署策略(Windows)

Jenkins测试环境到生产环境的一键部署策略(Windows) 一.前言 前面我们已经初步实现了开发集成环境.测试环境的持续集成(自动化构建.自动化测试.自动化部署).但生产环境自动化部署迟迟没有推进.其原因主要在以下几个方面: 尚未实现部署之前的自动化备份 尚未实现部署出现问题后的自动化回滚 由于之前采用FTP上传部署需要生产环境开放FTP端口存在安全性问题且FTP会因为各种的网速问题,导致站点瞬间挂掉 只要解决以上三个问题,我们就可以初步实现生产环境的自动化部署. 二.实现思路 利用Jen

综合架构搭建过程中不可缺少的部分——全网备份

2.全网备份2.1.全网备份的作用此项目可以将web服务器与存储服务器的数据,以编写脚本的方式将数据文件和目录统一备份到备份服务器,然后以法邮件的方式提醒用户2.2.全网备份部署过程2.2.1.服务端部署#!/bin/bash # 01: 验证备份数据完整性 find /backup/ -type f -name "finger.txt"|xargs md5sum -c >/tmp/check_finger.txt # 02: 将指纹文件验证结果发送给运维人员 mail -s &

OpenStack多节点一键部署(超详细)

实验环境下OpenStack多节点一键部署(超详细) 前言 ? OpenStack项目是一个开源的云计算平台项目,是控制着计算.网络和存储三大资源的分布式系统.搭建这样的一个云平台系统,可以为我们提供IaaS(基础设施即服务)模式的云服务.本文核心不在相关的理论,因此有关云计算和OpenStack的概念等相关整体介绍可以参考下面的三篇文章: 云计算浅谈 OpenStack概念以及核心组件概述 OpenStack部署节点类型和架构 ? 本文旨在给出实验环境下多节点一键部署OpenStack的详细实