一个合格的服务器自动备份案例,闭环备份机制出错邮件报警
2017-9-23
| 2023-9-1
0  |  0 分钟
页面类型
发布状态
发布日期
文章地址
内容摘要
文章标签
文章分类
icon代码
密码
数据无价,服务器备份机制是服务器维护的重中之重!利用Dropbox的上传脚本+Monit监控实现服务器每周循环生成备份并上传到 Dropbox 网盘,通过 Shell 脚本实现出现备份失败及时通过邮件通知、自动清理旧的备份数据、禁止在黄金时段执行备份、禁止重复覆盖备份,确保服务器的宝贵数据万无一失!

环境安装

Monit 监控服务

安装没有什么技术难度,本文不再啰嗦,有包管理用包管理安装没包管理用源码编译安装,遇到困难自行Google。
RedHat / CentOS / Fedora
Ubuntu / Debian / Linux Mint

Dropbox 上传脚本

直接使用 Andreafabrizi 写好的现成脚本 Dropbox-Uploader 稍作配置即可使用,配置教程下方提及。
下载 Dropbox 上传脚本
配置 Dropbox 上传脚本
创建 APP 程序 (点击Create app)
notion image
创建 API 密钥
notion image
运行 dropbox_uploader.sh 按提示输入 Dropbox API 密钥

构建备份脚本

本脚本是基于 Monit 的监控原理来写的,所以最好配合 Monit 来使用(邮件报警功能是由 Monit 实现的)。由于我的服务器没有什么要用得上Mysql数据库的程序所以没写这方面的备份脚本,可直接备份Mysql的数据文件夹是一样的效果。
注意事项
  1. 临时文件夹:'BACK_DATA' 变量的路径不能在要备份的文件夹内,最好就是设置在系统的 'tmp'临时文件夹内
  1. 备份文件夹:需要多少备份多少个目录就添加多少个数组,例:备份两个目录 ' folder[0]="/..." folder[1]="/..." ' 备份三个目录 ' folder[0]="/..." folder[1]="/..." folder[2]="/..." ' 以此类推
  1. Dropbox的目录: 'DROPBOX_DIR '要设置在子目录,这样设置有个好处就是多个服务器的备份不冲突
  1. 成功备份脚本返回 (0 ) 备份失败脚本返回(1)

Monit 监控脚本

Monit 的强大配置都写完的话就跑题了,这里只写邮件服务器的配置和与本文相关的配置。
邮件服务器配置
备份脚本监控
 
后端运维
  • Linux
  • 免费 Let's Encrypt 证书申请、部署全攻略与自动续期教程Nginx如何在使用类似CloudFlare的CDN加速服务后还能正常获取客户端的真实IP地址
    目录