前阵子服务器硬盘坏了,幸好数据都有备份,不然后果真的不堪设想。
经历了这次,我觉得备份真的太重要了。花了一个周末,写了个自动备份脚本,分享给大家。
脚本能干啥?
功能其实很简单:
- 自动打包指定的目录和文件
- 自动备份MySQL数据库
- 上传到阿里云OSS或者七牛云存储
- 自动删除7天前的旧备份
- 备份完成发邮件通知
虽然都是很基础的功能,但是够用了。对我这种个人博客和小项目来说,完全足够。
代码分享
核心部分其实就几十行代码:
#!/bin/bash
# 配置
BACKUP_DIR="/data/backup"
MYSQL_USER="root"
MYSQL_PASS="password"
OSS_BUCKET="my-backup"
# 打包文件
tar -zcf "$BACKUP_DIR/www_$(date +%Y%m%d).tar.gz" /www/wwwroot
# 备份数据库
mysqldump -u$MYSQL_USER -p$MYSQL_PASS --all-databases |
gzip > "$BACKUP_DIR/db_$(date +%Y%m%d).sql.gz"
# 上传到OSS
ossutil cp $BACKUP_DIR/*.tar.gz oss://$OSS_BUCKET/
ossutil cp $BACKUP_DIR/*.sql.gz oss://$OSS_BUCKET/
# 删除7天前的备份
find $BACKUP_DIR -type f -mtime +7 -delete
然后加个crontab每天凌晨3点执行,完事。
一点感想
备份这种东西,平时感觉没用,真到用的时候就是救命的。花点时间弄个自动备份,真的出事的时候你会感谢自己的。
而且最好是多地备份,本地一份,云端一份,这样才保险。
你们都有什么备份的好习惯?用的什么备份工具?评论区交流一下。
评论 (0)
暂无评论,来写第一条吧 ✍️