以前懿古今备份网站数据库和文件都是通过安装BackUpWordpress 插件来实现,刚开始还很好用,备份文件小的时候还能自动发送到指定邮箱中。不过秉承着能不用插件就不用插件的原则,终于根据张戈博主分享的《Linux/vps 本地七天循环备份和七牛远程备份脚本》成功实现本地七天循环备份数据库和网站文件,从而可以停用卸载 BackUpWordpress 插件了。
七天循环备份说明:
七天循环备份的意思就是总共保留七份备份文件,到第 8 天的时候就会覆盖第一天的备份文件,比如星期一到星期天总共七份备份文件,每次备份都将覆盖上星期同一天的文件,从而只备份 7 份数据,不至于占用特别大的空间。
准备工作
- 整理 ECS 服务器已有网站的数据库用户名和密码;
- 已有网站的根目录所在路径,如/home/wwwroot/yigujin.cn;
- 本地存放备份文件的路径,如/home/wwwroot/wwwbackup。
本地七天循环备份具体步骤:
1、下载张戈博主分享的 VPS 备份脚本 backup.sh,并上传 backup.sh 到 ECS 服务器指定路径(如/home/wwwroot/wwwbackup),然后执行以下命令赋予其执行权限:
- chmod +x /home/wwwroot/wwwbackup/backup.sh
2、编写备份数据库文件和网站文件命令
①备份数据库文件命令:
- /home/wwwroot/wwwbackup/backup.sh db 网站域名(用于备份文件命名) 数据库名称 数据库用户名 数据库密码 备份文件存放路径
完整的命令如下:
- /home/wwwroot/wwwbackup/backup.sh db yigujin.cn yigujin_db root rootpasswd /home/wwwroot/wwwbackup/yigujin.cn
②备份网站文件命令:
- /home/wwwroot/wwwbackup/backup.sh file 网站域名(用于备份文件命名) 网站文件路径 备份文件存放路径
完整的命令如下:
- /home/wwwroot/wwwbackup/backup.sh file yigujin.cn /home/wwwroot/yigujin.cn /home/wwwroot/wwwbackup/yigujin.cn
3、建立七天循环备份任务计划
①先执行 crontab -l 看看命令是否存在,若不存在,请使用yum -y install vixie-cron crontabs 安装 crond
②确认 crond 已存在后,请执行/etc/init.d/crond start 确保启动了 crond 服务,并执行 chkconfig crond on 设置为开机启动。
③执行 crontab -e 建立任务计划,如下是我 ECS 服务器的任务计划(只备份数据库文件,如还需备份网站文件,只需要按备份网站文件命令继续添加到任务计划即可),请参考添加:
- #backup boke112.com:
- 0 4 * * * /home/wwwroot/wwwbackup/backup.sh db boke112.com boke112com_db root 123456 /home/wwwroot/wwwbackup/boke112.com >/dev/null 2>&1
- #backup yigujin.cn:
- 30 3 * * * /home/wwwroot/wwwbackup/backup.sh db yigujin.cn yigujinwang_db root 123456 /home/wwwroot/wwwbackup/yigujin.cn >/dev/null 2>&1
其中,0 4 * * *为分 时 日 月 周,意思就是每天凌晨 4 点开始执行后面的命令行计划;>/dev/null 2>&1,表示屏蔽任何日志信息。
4、平滑重启 nginx
- /usr/local/nginx/sbin/nginx -s reload
至此,我的 ECS 服务器上两个站点的数据库文件都已经成功实现了本地七天循环备份机制,终于可以放心停用并卸载 BackUpWordpress 插件了。
特别说明:
1、本文的技术及代码均来自张戈博主分享的《Linux/vps 本地七天循环备份和七牛远程备份脚本》。
2、本想同时实现本地七天循环备份和七牛远程备份的,可惜七牛远程备份功能死活折腾都不成功,最后只能放弃。
3、由于我的主题文件和插件文件都很少改动,个人觉得完全没必要备份网站文件,所以我的七天备份任务计划中就没有添加网站备份的命令行,想要备份网站文件的可以参照步骤 2 中的备份网站文件命令添加。
4、如果手头相对宽裕的,不妨购买一个阿里云 OSS 对象存储来实现定时远程备份网站,具体效果更佳,具体可前往张戈博主分享的《Python&Shell 脚本结合阿里云 OSS 对象存储定时远程备份网站》学习。
发表于2016-10-25 09:23 沙发
学习带来乐趣,谢谢博主!
发表于2016-10-25 09:30 板凳
虚拟空间表示心有余而力不足。
@Koolight那今后也弄个服务器玩玩吧,一定会爽上很多的吧。
@我爱动感单车网其实没多大爽。除非你喜欢折腾,不然跟虚拟主机没差
@Koolight[偷笑] 虚拟空间更好,不容花时间去折腾它,我发现阿里云的虚拟主机比ECS服务器还要贵,所以才买服务器的,要不然也是使用虚拟主机,省事很多
@懿古今是啊,阿里云的虚拟主机真的挺贵的,那价格有点令人咋舌!难道它很好很好吗?
发表于2016-10-25 10:09 地板
不错的
发表于2016-10-25 14:23 4楼
多些的分享
发表于2016-10-25 15:07 5楼
使用虚拟主机的咱,与此无缘啊!
@我爱动感单车网虚拟主机的好处就是不用折腾服务器,可以安心创作写文章
@懿古今服务器的速度快啊,这点谁不想呢?!
发表于2016-10-25 16:31 6楼
这个方法都是有趣。可以考虑。不过习惯纯手工备份。
@橘子书我以前是安装插件自动完成的,后来发现这个挺简单的,让服务器自动完成,挺好的
发表于2016-10-25 20:59 7楼
博主最后说的对,现在阿里云的OSS价格又低了。
@热腾网好像是9块钱第一年,对于新注册用户而言
发表于2016-10-30 13:49 8楼
建立七天循环备份任务计划的第二步,无法完成,提示不存在这个文件,但是我第一步已经安装了,不知道博主能否帮忙下
@野人摊影视分享这个建议你去问张戈博主,我是根据他的文章折腾的,万幸的是直接成功了,对于这个服务器我只会根据教程折腾