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

1、项目需求说明

某公司有多台服务器,里面的数据很重要,如果磁盘坏了,数据就会丢失,所以公司要求把重要服务器数据备份以便出现问题时可以进行恢复,要求:每天晚上00点整在所有服务器上打包备份系统配置文件、网站程序目录及访问日志并通过rsync命令推送备份服务器backup上备份保留(备份思路可以是先在本地按日期打包,然后再推到备份服务器backup上)

2、具体需求规划

所有服务器的备份目录必须一致 /backup/

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

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

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

三、日常脚本目录(/server/scripts)

四、防火墙iptables的配置文件 (/etc/init.d/iptables)

1、web服务器站点目录例如(/var/html/www)

2、web服务器访问日志路径例如(/app/logs)

3、web服务器保留打包后的7天的备份数据即可(因为本地服务器的磁盘会满)

4、备份服务器上,保留近180天的备份数据,6个月前的数据清除 每周一的所有数据进行保留

5、备份服务器上,要按照备份服务器的内网IP为目录保存备份,备份的文件按照时间名字保存

6、需要保存的数据尽量完整正确,在备份服务器上对备份的数据进行检查,把本分成功及失败的结果信息发送到系统管理员邮箱中

3、服务器信息


服务器说明


外网IP


内网IP


服务器主机名


Nginx web服务器


10.0.0.8/24


172.16.1.8/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

4、项目实战部署—搭建rsync服务端(backup)

1、rsync主配置文件

cat >/etc/rsyncd.conf<<EOF
#rsync server#
#created by yanxinjiang 2017-8-15
##rsyncd.conf start##
uid = rsync
gid = rsync
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]
path = /backup
EOF

2、创建统一备份数据的目录,添加备份目录管理用户

mkdir /backup -p
chown -R rsync.rsync /backup/
useradd -s /sbin/nologin -M rsync

3、创建用户认证文件

echo "rsync_backup:123456" >/etc/rsync.password
chmod 600 /etc/rsync.password

4、启动rsync服务并设置开机自启动

rsync --daemon
lsof -i:873
echo "rsync --daemon" >>/etc/rc.local

5、rsync客户端创建用户认证文件

echo "123456" >/etc/rsync.password
chmod 600 /etc/rsync.password

6、客户端验证rsync服务推送功能

①nfs01服务器验证
[[email protected] backup]#rsync -avz /etc/hosts [email protected]172.16.1.41::backup --password-file=/etc/rsync.password
sending incremental file list
hosts
②web01服务器验证
[[email protected] ~]#rsync -avz /etc/hosts [email protected]172.16.1.41::backup --password-file=/etc/rsync.password
sending incremental file list
hosts

5、rsync客户端编写备份脚本(web01)

#!/bin/bash
# name: web_backup.sh
# desc: backup rsync client data info
#no.1 create backup dir
Backup_Dir=/backup
IP=`/sbin/ifconfig eth1|awk -F "[ :]+" ‘NR==2{print $4}‘`
mkdir $Backup_Dir/$IP -p
#no.2 compress system data to backup_dir
cd / &&tar zchf $Backup_Dir/$IP/systemfile_info_$(date +%F).tar.gz var/spool/cron/root etc/rc.local server/scripts etc/sysconfig/iptables &&tar zchf $Backup_Dir/$IP/www_info_$(date +%F).tar.gz var/html/www &&tar zchf $Backup_Dir/$IP/www_log_$(date +%F).tar.gz app/logs &&#no.3 create data finger info file
find $Backup_Dir/$IP/ -type f -name "*.tar.gz"|xargs md5sum >$Backup_Dir/$IP/finger_$(date +%F).txt
#no.4 push data info to rsync_server‘s backup_dir
rsync -az $Backup_Dir/$IP [email protected]172.16.1.41::backup --password-file=/etc/rsync.password
#no.5 delete 7 day ago data info
find $Backup_Dir/$IP -type f -name "*.tar.gz" -mtime +7|xargs rm -f

6、rsync客户端编写备份脚本(nfs01)

#!/bin/bash
# name: nfs_backup.sh
# desc: backup rsync client data info
# author: yanxinjiang
Backup_Dir=/backup
IP=`/sbin/ifconfig eth1|awk -F "[ :]+" ‘NR==2{print $4}‘`
Date_info=`date +%F_%w`

#no.1 create backup dir
mkdir $Backup_Dir/$IP -p
#no.2 compress system data to backup_dir
cd / &&tar zchf backup/$IP/systemfile_info_${Date_info}.tar.gz var/spool/cron/root etc/rc.local server/scripts etc/sysconfig/iptables
#no.3 create data finger info file
find $Backup_Dir/$IP/ -type f -name "*${Date_info}.tar.gz"|xargs md5sum >$Backup_Dir/$IP/finger.txt
#no.4 push data info to rsync_server‘s backup_dir
rsync -az $Backup_Dir/$IP [email protected]172.16.1.41::backup --password-file=/etc/rsync.password
#no.5 delete 7 day ago data info
find $Backup_Dir/$IP/ -type f -name "*.tar.gz" -mtime +7|xargs rm -f

7、rsync服务端编写检验脚本(backup)

#!/bin/bash
# name: backup_server.sh
# time: 2017/08/15 16:00
# desc: backup rsync server data info
# author yanxinjiang
#no.1check data info
find /backup/ -type f -name "finger.txt"|xargs md5sum -c >/backup/check_info.txt
#no.2 send mail to sa
mail -s "check_data mail" 774181401@qq.com  </backup/check_info.txt &>/dev/null
#no.3 delete 180 day ago unless week01
find /backup/ -type f -name "*.tar.gz" -mtime +180  ! -name "*1.tar.gz" |xargs rm -f

8、编写全网备份定时任务

1.nfs01服务器定时任务编写

#nfs01 backup data info-cron
00 00 * * * /bin/sh /server/scripts/nfs_backup.sh &>dev/null

2.web01服务器定时任务编写

#web01 backup data info-cron
00 00 * * * /bin/sh /server/scripts/web_backup.sh &>dev/null

3.backup服务器定时任务编写

# backup: backup data info cron
00 05 * * * /bin/sh /server/scripts/backup_server.sh &>/dev/null

时间: 2024-10-24 23:53:12

linux运维、架构之路-全网备份项目方案的相关文章

《Linux运维架构师课程 - 门徒班》【招生中】

课程简介 阿良的课程内容主要以企业核心技术为讲解对象,避免过多在企业中很少用的技术,从而减少学习负担,这样就可以把精力主要花费在更重要的技术上, 而不像其他培训机构那样,讲很多高大上的技术名词,其中可能50%的知识在工作中都用不到,学员抓不住重点,时间长了就忘了.    所以,阿良的教学模式讲究是精益求精,"好钢用到刀刃上,只求精,不求多".    只要你肯学,阿良就肯教.帮助你掌握这门技能,成功就业,初学者月薪达到6000以上. 授课对象 ■ 计算机相关专业在校学生/应届生 ■ 网络

Linux运维架构师课程介绍

课程体系:     RHCE(RedHat Certification Engineer): RH033(基础) RH133(系统管理) RH253(服务管理)     RHCA(Redhat Centification Architect): RH401 RH423(LDAP协议) RH442         RH436(集群和存储) RHS333     MySQL     NoSQL 工作岗位: 系统架构师:设计蓝图 系统工程师:系统上线 运维工程师:系统运维 DBA:数据库管理员 计算机

Linux运维架构师学习开篇——笔记

从毕业从事硬件失效分析方面工作近三年, 偏冷门的行业,一直在工厂产线,吸着产品线散发出的一道道气息,闲暇之余我也在思考难道我今后只能在工厂待一辈子吗?我的职业只能在生产线处理不良产品,我的未来就是作为一个硬件高级维修工吗?我想走出产品线,对未来的职业发展充满迷茫,内心思想一直在挣扎.马上奔三后该做什么,能做什么? 以前接触过Linux,但仅仅是复制粘贴指令,配置IP,最基本操作而已,没有接触到真正的技术,为了今后能有一技之长,有个明确的发展方向(云端),也为了能拿到一份不错的薪水,提高生活质量,

linux运维之路第一篇章:决心书

这一次很有毅力的选择了linux运维的这条路 为什么会这样选择? 自身往技术发展的需求! 身边朋友的推荐! 对在北京生活的一种追求! 来到北京很多人是想着挣钱的,我也是一样,在北京一家不知名的民办学校上了二年学,呵呵,就是野鸡大学,虽然学校对于教育放来来说不是怎么回事,但是对于技术方面还有两把刷子,可能自己对于网络有写喜欢,学了电子商务,工作之后做了SEO优化,到如今也有近两年的时间了.两年自己一直处在底薪阶层(3~6k),然而谁没有一个追求,展现自身更多的价值,拿更高的薪资,过上更好的生活,也

linux运维之路

Linux入门必备内容 成为一个优秀的linux运维人员必要条件 如何能高标准的掌握linux运维实战技术 计算机硬件组成.工作原理 CPU.内存.磁盘.raid卡生产工作标准详解 企业生产主流品牌服务器及型号内部拆卸讲解 操作系统cache与buffer的原理及硬件设计哲学 结合企业生产实战运维场景如何利用硬件优化 操作系统.Unix及Linux介绍 linux操作系统种类及运维人员选择建议 CentOS Linux原理深入.安装 Linux入门知识进阶 远程连接工具原理及使用 编辑工具 比较

Linux运维需要懂什么web集群架构知识?

Linux运维需要懂什么web集群架构知识? 在充斥着各种的互联网+的数字时代,IT运维方面也越来越趋于Linux系统的应用,掌握 Linux 运维技术已成为IT 技术人员的必经之路,但是,构建在Linux系统上的高性能.高并发企业级网站集群架构上的网站集群架构,又会涉及到哪些具体的内容呢? 1.需要学习与Linux 相关的基础且重要的知识 Linux 的历史沿革.Linux 的企业级选型.学习环境的搭建.Linux 的企业级系统安装.Linux 系统的基础优化,以及远程连接Linux 及客户端

了解Linux运维要用到的web集群架构知识

了解Linux运维要用到的web集群架构知识 在充斥着各种的互联网+的数字时代,IT运维方面也越来越趋于Linux系统的应用,掌握 Linux 运维技术已成为IT 技术人员的必经之路,但是,构建在Linux系统上的高性能.高并发企业级网站集群架构上的网站集群架构,又会涉及到哪些具体的内容呢? 1.需要学习与Linux 相关的基础且重要的知识 Linux 的历史沿革.Linux 的企业级选型.学习环境的搭建.Linux 的企业级系统安装.Linux 系统的基础优化,以及远程连接Linux 及客户端

Linux运维之路 基础篇:Linux基础命令(一)

Linux运维之路 基础篇:Linux基础命令(一) Linux哲学宗旨: 一切皆文件:把几乎所有的资源,包括硬件设备都组织为文件 有众多单一的小程序组成,一个程序制实现一个功能,组成小程序完成复杂操作 尽量避免和用户交互:实现脚本编程,以自动完成某些功能 使用纯文本文件保存配置信息 终端:用户和主机交互时用到的设备 物理终端:直接接入的设备也叫控制台/dev/console 虚拟终端:附加在物理终端上虚拟出的,默认启动六个,Ctrl+Alt(F1~F6),系统启动时,默认启动虚拟终端1,启动终

Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz!

Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz! log.latermoon.com/