需求描述
备份本博客网站的数据库,数据资料,备份频率1次/天,服务器源站位于美国,备份数据异地容灾,传输到中国一份,传输到日本服务器一份。
数据实现一主,两备份副本,即便主网站完全崩溃,可以实现,快速的数据恢复,网站重建。
博客网站的备份,分为两部分,数据库部分和网站文件部分。
备份脚本已上传Github,运行在源站服务器上
https://github.com/fdmove/BlockADS/blob/main/BackBlog.sh
预览
#!/bin/sh # START mkdir -p /root/sh /root/backup v_date=`date '+%Y%m%d'` DB_USER='root' DB_PASS='DBPASS' DB_NAME='DBNAME' DB_HOST='127.0.0.1' # 备份数据库 mysqldump -h ${DB_HOST} -u ${DB_USER} -p${DB_PASS} --databases ${DB_NAME} > /root/backup/Backup.myBlog.mysqldump.${v_date}.SQL # 备份网站的文件 v_blog='dasmz.com' cd /var/www/ tar -zcvf /root/backup/Backup.${v_blog}.${v_date}.tar.gz ${v_blog} # 删除旧的备份 cd /root/backup find . -name *.tar.gz -type f -ctime +90 -print | xargs rm find . -name *.SQL -type f -ctime +90 -print | xargs rm # END
备注1 依据服务器磁盘大小,选择保留的数据量
备注2 实际情况下,个人博客网站,一般一主一备就足够了,单体数据量全量和增量都比较小,不需要高密度备份
源站服务器,cron任务
# 备份数据库 和 网站的文件 20210713 10 0 * * * /root/sh/BackBlog.sh > /root/log/BackBlog.log
备份的文件在源站服务器生成后,可以用一些sync工具,定时同步到其他备份节点的磁盘上。