Linux-Rsync项目实战(详细) 备份全网服务器数据生产架构方案

要求如下:
每天晚上0点 在NFS服务器A(rsync客户端)上打包备份网站程序目录(/var/www/html)
通过rsync命令推送到服务器B上备份保存
具体要求:
1.NFS服务器 和 备份服务器 他们的备份目录都是backup
2.NFS服务器站点假定为/var/www/html
3.NFS服务器本地保留7天的备份
4.备份服务器上检查备份结果是否正常 把每天的结果发送给管理员(并不需要邮箱软件) sendmail
5.备份服务器上每周六的数据都保留 其他的仅保留180天
1、首先部署NFS,将/var/www/html 目录共享给web管理员(webadmin)



挂载成功:(NFS部署成功)

2、在备份服务器和NFS服务器上创建备份目录

3、NFSserver的/var/www/html打包压缩同步到/backup目录,每次备份的打包备份的文件只保留七天:
tar -zchf /backup/html.$(date +%F%w -d ‘-1day‘).tar.gz /var/www/html/

注释:tar h参数是将符号链接文件视作普通文件或目录,从而打包的是源文件,%F 完整日期格式 %w 一星期中的第几日(0-6),0 代表周一 ,$读取具体的天数作为备份文件名,这样做的目的是为了不重名,-d ‘-1 day’ 如果是今天备份的今天也算一天所以要去掉
find /backup -name “.tar.gz” –mtime +7 -type f |xargs rm –f
注释:–mtime 参数:最后一次修改发生在n天以内,距离当前时间为n24小时以内
查找/backup 目录下搜后缀为.tar.gz的创建时间达到7天的文件,将此文件删除,xargs命令是给其他命令传递参数的一个过滤器,换行和空白将被空格取代。

4、在将备份目录推送之前,加指纹信息,方便服务端的验证,前提是创建指纹的客户端路径和服务端路径相同才可以
为什么要添加指纹:为了生成日志让管理员更直观的查看备份的结果
[[email protected] backup]# find /backup/ -name ‘.tar.gz‘ |xargs md5sum >/backup/check.txt
[[email protected] backup]# md5sum -c check.txt

是不是直观的看到了 OK

5、将已经备份好压缩文件推送到rsync备份服务器上,推送完整的数据,到模块指定的目录下
rsync -avz /backup/ [email protected]::backup --password-file=/etc/rsync.password

备份服务器上查看推送:(推送成功)

自动化:在客户机上测试了命令后,需要编写一个脚本,实现自动化运维!
脚本如下:

配置周期作业:(每晚0点自动执行脚本进行备份)
Crontab –e //编写周期作业

接下来是备份服务器端:
1、 备份服务器上[每周六的数据都保留],其他备份仅保留180天备份

find /backup/ -name ”.tar.gz” !”6.tar.gz” -mtime +180 –type f |xargs rm –rf

注释:
将所有后缀为不为6.tar.gz(因为前面的备份文件命名规则是%F%w 所以6就表示每个星期六) 并且文件存在天数大于等于180天的备份文件删除掉。

2、 备份服务器上检查备份结果是否正常,并将每天的备份结果发给管理员信箱
(1)首先将本地的send-mail配置文件修改为all:

(2)重启邮件服务
systemctl restart postfix

(3)发送邮件给管理员
-s 表示邮件标题
root为接受的用户 @ 后面可跟ip地址或者域名
如果发给qq邮箱格式为: [email protected]
测试成功:

3、 最后在备份服务器上实现自动化运维:
(1) 编写自动化脚本:

(2)配置周期作业:
crontab -e

总结此次试验:
遇到的问题:date +%F%w -d ‘-1day‘ 命名文件出现了无法正确获取时间
解决方法:在多次测试后终于发现需要加$符号来读取这段函数获取的时间。
如果rsync的配置文件不会做,请看我上一篇的博客,有错的地方还请点评指点,在此感谢!

原文地址:http://blog.51cto.com/13735335/2136205

时间: 2024-08-22 15:13:52

Linux-Rsync项目实战(详细) 备份全网服务器数据生产架构方案的相关文章

备份全网服务器数据生产架构方案案例模型

某公司里有一台web服务器,里面的数据很重要,但是始果硬盘坏了,数据就会丢失,现在领导要求你把数据在其他机器上做一个周期性定时备份,要求如下: 每天晚上00点整在web服务器A上打包备份网站程序目录并通过rsync命令推送到服务器B上备份保留(备份思路可以是先在本地按日期打包,然后再推送到备份服务器上) 具体要求如下: 1)       web服务器A和备份服务器B的备份目录必须都为/backup 2)       web服务器站点目录假定为(/var/www/html) 解答: 操作系统 主机

备份全网服务器数据

具体要求: NFS服务器nfs01和备份服务器backup的备份目录必须都为/backup 要备份的系统配置文件包括但不限于: 定时任务服务的配置文件(/var/spool/cron/root) 开机自启动的配置文件(/etc/rc.local) 日常脚本的目录(/server/scripts) 防火墙iptables的配置文件(/etc/sysconfig/iptables) 自己思考下还有什么需要备份呢 Web服务器站点目录假定为(/var/html/www) Web服务器A访问日志路径假定

分布式服务器集群架构方案思考

nginx-reverse-proxy-conf 研究了一套完整的分布式服务器集群架构方案. 0x01.大型网站演化 简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率. 集群主要分为:高可用集群(High Availability Cluster),负载均衡集群(Load Balance Cluster,nginx即可实现),科学计算集群(High Performance Computing Cluster). 分布式是指将不同的业务分布在

Linux零基础入学之1-4 Linux文件管理-xfs文件系统的备份恢复-服务器来电后自动开机

[本节内容] Linux系统目录结构 相对/绝对路径 创建/复制/删除文件 rm -rf / 意外事故 查看文件内容 xfs文件系统的备份和恢复  (在rhel6.5上做) 服务器来电后自动开机 [linux系统的目录结构] Linux是单根目录,单根组织文件 /    根分区 所有文件和目录由此开始.只有root用户对此目录有写权限 例:cd /        #查看根目录下的文件 /etc   配置文件目录 包含所有应用程序的配置文件,也包含启动.关闭某个特定 程序的脚本    例如: /e

Linux下rsync的安装与配置远程服务器数据同步

服务器里数据最重要,商业用途的数据更加重要,一旦丢失,结果不堪设想.所以备份很重要.可以使用来rsync+crontab来做数据同步. 方法/步骤 首先是安装 wget http://rsync.samba.org/ftp/rsync/src/rsync-3.1.0.tar.gz cd rsync-3.1.0/ ./configure --prefix=/usr/local/rsync make make install 测试下 make test 没问题 下面开始配置,注意默认是没有rsync

Windows和Linux使用WinSCP脚本(备份)自动数据同步

使用WinSCP脚本(备份)自动数据同步 写在前面:本笔记适用于windows和linux之间数据备份.使用以下脚本前提是windows已将安装了WinSCP程序 脚本文件script.txtoption echo offoption transfer binaryopen sftp://username:[email protected]:port::cd /backup/::put E:\app (简单上传文件命令)synchronize remote E:\app\back /backup

全网服务器数据备份方案(模拟生产环境)+邮件告知

使用rsync实现全网数据备份(模拟生产环境)+邮件告知 项目要求来源于网络:http://oldboy.blog.51cto.com/2561410/1856048 假定3台服务器主机名分别为web01.backup.nfs01,主机信息如下表: 服务器说明 内网IP 主机名 nginx web服务器 192.168.1.222 WEB-01 NFS存储服务器 192.168.1.233 NFS-01 rsync备份服务器 192.168.1.244 BACKUP 要求:每天晚上00点整在We

打通前后端全栈开发node+vue进阶【课程学习系统项目实战详细讲解】(3):用户添加/修改/删除 vue表格组件 vue分页组件

第三章 建议学习时间8小时      总项目预计10章 学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习前面的vue和node基础博客[共10章] 演示地址:后台:demoback.lalalaweb.com  前台:demo.lalalaweb.com 演示过程中可能会发现bug,希望即时留言反馈,谢谢 源码下载:https://github.com/sutianbinde/classweb               //不是全部的代码,每次更新博客才更新代码 学

20170713L08-00老男孩Linux运维实战培训-DELL R710服务器RAID配置实战演示

讲解各种RAID RAID0: 一般是用两块盘来做的 把一个文件分别写在两块盘上 这样提高了读写速度 但并不冗余,数据丢失后无法通过备份找回 RAID1: 也是用两块盘做 就是一般所说的镜像 互为备份 一块的数据丢失后能通过另一块找回 RAID5: 至少需要三块盘 RAID5是RAID0和RAID1的一种折中的方案 所以是10/2=5