苹果CMS数据库备份,别再等网站打不开了才想起这档子事
妈的,昨天又有个老哥找我哭诉,说他的苹果CMS站被黑,数据库全没了,几万条影视资源灰飞烟灭,连服务器商都懒得给他恢复,我听完只想问一句:你早干嘛去了?干这行七八年,见过太多人把“备份”俩字当耳旁风,直到某天后台点不动、页面白屏、或者被挂了一堆菠菜链接,才想起自己连个phpMyAdmin导出都没碰过,今天我就把关于苹果CMS数据库备份那点破事儿,掰开了揉碎了讲清楚,你照着做,能少踩一半坑。

!bin/bash
先说我自己的真实踩坑经历,早年间我做个电影站,用的是苹果CMS v10,每天辛辛苦苦采集、手动分类、做SEO,流量刚起来准备吃广告费,结果某天早上打开网站,好家伙,首页直接变成“站点已被暂停”,登服务器一看,MySQL数据库文件全被删了,只留了个勒索txt文件,让我交0.5个比特币,我当时脑子嗡的一下,因为我压根没做过任何备份,连定时任务都没设,那会儿年轻,以为服务器商能自动备份,结果人家合同里写清楚了:只保障系统盘,数据库你自己管,最后我花了整整三天,靠采集器重新搭资源,但用户评论、自定义分类、广告位配置全丢了,元气大伤,从那以后,我养成了“备份强迫症”,今天分享的这套方案,就是当年用血泪换来的。
苹果CMS的数据库备份,核心就两条路:一是用系统自带的备份功能,二是用服务器层面的定时任务,很多新手只知道进后台——工具——数据库备份,点一下生成个SQL文件,然后下载到本地,这有用,但太原始,你不可能天天记得手动点,而且苹果CMS自带的备份文件默认存在根目录Data/Backup下,如果网站被黑,这个目录往往也是黑客最先清掉的地方,等于白备,所以我的建议是:别把鸡蛋放同一个篮子里,必须把备份文件挪出网站目录,最好直接放到另一台机器或者对象存储里。
具体怎么操作?推荐你装个宝塔面板,别跟我谈什么命令行高冷,普通人用宝塔省心多了,在宝塔后台,计划任务里新建一个Shell脚本,每天凌晨3点执行,脚本干三件事:第一,用mysqldump导出苹果CMS的数据库,压缩成tar.gz格式;第二,把压缩包通过scp或者ossutil传到远程存储,我目前用的是阿里云OSS,一个月几块钱,存几十个G的备份没问题;第三,删掉服务器上7天前的旧备份,避免占满磁盘,脚本代码我直接给你,拿去就能用,注意替换数据库名、用户名、密码和存储路径:
DB_USER="root"
DB_PASS="你的密码"
BACKUP_DIR="/www/backup/cms"
DATE=$(date +%Y%m%d%H%M)
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/cms_$DATE.sql.gz
ossutil cp $BACKUP_DIR/cms_$DATE.sql.gz oss://your-bucket/cms_backup/
find $BACKUP_DIR -type f -name "*.sql.gz" -mtime +7 -exec rm {} \;
这里有个坑,用宝塔的默认MySQL版本,mysqldump路径可能不在环境变量里,你得写全路径,比如/www/server/mysql/bin/mysqldump,如果数据库是5.7以上,加个--single-transaction参数防止锁表,尤其是你网站流量大、在线用户多的时候。
然后说插件,苹果CMS本身没有特别像样的备份插件,但你可以用宝塔的“定时备份”插件,界面化操作,选择数据库一键添加任务,还能备份到云存储,我个人更推荐上面脚本的方式,因为可控性强,如果你用的是虚拟主机没法装宝塔,那就退而求其次,用苹果CMS后台的“备份”功能,每天手动点一次,然后立即下载到本地电脑,再上传一份到网盘,虽然麻烦,但总比没有强。
光备份还不够,你得定期演练恢复,说白了,备份文件如果在关键时候恢复不了,那就是一堆废数据,我建议每个月找一天,把备份的SQL文件导入到一个测试环境,比如本地用phpStudy搭一套苹果CMS,导入后检查前台页面、播放器能不能正常解析,你别笑,真有哥们备份了半年,结果恢复时发现文件只有0KB,因为磁盘满了写不进去,你每个月验证一次,心里就有底了。
最后说点长期维护的实在话,第一,数据库账号别用root,苹果CMS的config.php里连接数据库最好单独创建一个账号,权限只给该库的SELECT、INSERT、UPDATE、DELETE、CREATE,别给DROP和ALTER,这样就算网站被人抽了数据库,黑客也没法删库跑路——虽然他能导出数据,但至少你的源库还在,第二,设置好备份后,别忘了检查一下存放备份的OSS或者网盘容量,别因为欠费导致备份中断,第三,苹果CMS升级或换模板前,一定手动做一次完整备份,别问我为什么,我上次升级到v11,结果老数据库的字段不兼容,要不是有备份,几千个影片信息全得重来。
写这么多,就是希望你明白:网站运维,备份不是可做可不做的附加题,而是保命的基础操作,花半小时把定时任务配好,以后每个月花十分钟检查一下,花不了几块钱,却能让你在突发事故面前睡个安稳觉,别再等网站打不开了才到处找教程,那时候你哭爹喊娘都没用,动手去配吧,现在就开宝塔,把这个坎过了,以后你的苹果CMS站才算是真正有了“保险”。
发表评论