使用 WordPress 架设的朋友,一定都会必装 WordPress Database Backup 这只插件,让资料库中的资料,自动备份并寄送到指定的信箱中,如此一下来就可省去手动备份的不便,但有用过这只插件的朋友,是否有发现到,当资料库的档案愈来愈大时,时常会收不到,起初我以为是 Gmail 的限定,但最后发现到,并不是信箱的问题,而是 WordPress Database Backup 在进行资料库备份时,会让 CPU 的用量瞬间飙高,造成备份失败,或是网站瞬间挂掉的问题。

  因此为了解决这个问题,我多次与糖果主机,不断的来回讨论,终于找了一个解决办法,就是透过 Liunx 的脚本来备份资料库与寄送,最后搭配 cPanel 中的排程,就可达到像 WordPress Database Backup 一样,会自动定时的将资料库备份,且寄送到指定的信箱中,至于备份的脚本要怎么写,以及 cPanel 排程要如何设定,现在就一块来看看吧!


Step1
首先,只需修改 1. 寄件者、 2. 收件者、 3. 资料库帐号、 4. 资料库密码、 5. 资料库名称、 6. 主机目录,当都修改完毕后,再将它储存成 「 db_backup.sh 」。

db_backup.sh

#!/bin/sh

from='寄件者'
to='收件者'

NOW=$(date +"%Y-%m-%d-%H-%M");
NOW2=$(date +"%Y-%m-%d %H:%M");
mysqldump -u 资料库帐号 -p 资料库密码 资料库名称 > 资料库名称-${NOW}.sql
tar cfz /主机目录/资料库名称-${NOW}.tar.gz 资料库名称-${NOW}.sql
rm -f /主机目录/资料库名称-${NOW}.sql

if [ -f /主机目录/资料库名称-${NOW}.tar.gz ]; then
	echo "资料库备份,时间 ${NOW2}" | mailx -s "xxx.com 资料库备份 ${NOW2}" -a /主机目录/资料库名称-${NOW}.tar.gz -r $from $to
fi

rm -f /主机目录/资料库名称-${NOW}.tar.gz	

Step2

接着开启 cPanel 后台,进入 「档案管理员」,点选 「上传」,将刚所编辑好的脚本上传到主机根目录中。


Step3

上传完毕后,在主机的根目录中,就会看到刚所上传的脚本档。


Step4

接着回到 cPanel 管理画面,再点选 「工作排程」的图示。


Step5

进入工作排程后,上方设定备份的时间,而下方的指令地方,输入/bin/sh 备份档脚本.sh 。


Step6

当建立完毕后,在下方的工作排程中就会看到,而这边我是设定每晚半夜 12 点再来进行备份。


Step7

接着每天晚上 12:00,就会收到资料库的备份档,是不是超方便的呀!而这一个方法,不只限于 WordPress 使用,只要是 Liunx 主机,并且后台有排程工作,都可使用这方式来进行备份喔!