之前曾经分享过一个将wp备份到dropbox的方法,并提供了相应的脚本支持,现对这个脚本进行了更新了,增加了备份数据库的功能,一定程度上避免了数据丢失带来的不便。
下面介绍实现数据备份的方法:
数据库备份
这个脚本里面利用mysqldump实现了数据库的备份,
1.导出整个数据库
mysqldump -u 用户名 -p数据库名 > 导出的文件名
2. 导出一个表
mysqldump -u 用户名 -p数据库名 表名> 导出的文件名
因此有了这个强大的东西,就可以实现我们的备份了,请看下面的实现代码:
#*********************************************************# # function : auto_back_mysqldb # # Purpose : 备份WP数据库 # #*********************************************************# function auto_back_mysqldb() { cd ~ if [ ! -d $BK_DIR ];then mkdir -p $BK_DIR fi cd $WS_DIR #从wp-config.php获取数据库主机 db_host=`cat wp-config.php |grep DB_HOST|awk -F"," '{print $2}'|sed s/"'"//|sed s/"');"//|sed s/" "//` #从wp-config.php获取备份数据库名 db_name=`cat wp-config.php |grep DB_NAME|awk -F"," '{print $2}'|sed s/"'"//|sed s/"');"//|sed s/" "//` #从wp-config.php获取备份数据库用户名 db_user=`cat wp-config.php |grep DB_USER|awk -F"," '{print $2}'|sed s/"'"//|sed s/"');"//|sed s/" "//` #从wp-config.php获取备份数据库密码 db_pwd=`cat wp-config.php |grep DB_PASSWORD|awk -F"," '{print $2}'|sed s/"'"//|sed s/"');"//|sed s/" "//` db_bak_name=$db_name`date +%Y%m%d`".sql.zip" #echo $db_host $db_name $db_user $db_pwd $db_bak_name mysqldump -u $db_user -p$db_pwd -h $db_host $db_name | gzip > $db_bak_name if [ -f $db_bak_name ]; then echo "[OK] BACK UP $db_bak_name" else echo "[FAIL] BACK UP $db_bak_name" fi }代码中需要注意,-p这边不能有空格,应该紧接密码,否则回提示输入密码,也就失去了crontab自动备份的意义了。
这样就完成了数据库的备份了,其余的实现及详细的配置请参考分享wp空间自动备份脚本-增加Dropbox备份支持。
总结
此致,这个脚本算是比较完善了,实现了整个wp的备份。有什么疑问,欢迎讨论。

- Pingback on 2010/07/11/ 01:22

DropBox备份还是会在主机占用空间?而且每次只能保存一个备份?
好希望DropBox能把所有备份按照时间顺序保存下来啊,然后主机上只留最新的一个备份。
也许用Google Storage的命令行上传备份就好~
现在这个脚本会自动删除以前的老的备份程序的,脚本里面可以设置自动删除备份程序的天数,保存到dropbox由于空间有限制,现在只是保存了3天的内容,下一步有机会整到gs上去
你可能没有理解我的意思,我的意思说是不是由于同步的存在,主机上保存了最近三天的三份备份,DropBox上也保存了这三份备份,就是说没有节省主机空间,只是多了一份备份~ 增加了数据了安全系数~?
我晕,三级嵌套是坏的,字白敲了
你可能没有理解我的意思,我的意思是由于同步的存在,在主机上要保存最近三天的备份,而DropBox上也保留了这三天的备份,主机的备份,没有办法删除掉,所以没有节省空间,只是增加了数据的安全性?
不会白敲得,不知道怎么回事要刷新一下才能显示出来。主机上的备份也是自动保存前3天的内容,,脚本会自动的删除过期的备份,按您的意思来说确实可以说是增加了数据的安全性。
用的Supercache把~应该设定成有新评论就要更新cache 啊~~
嗯,没办法,谁叫DropBox 是同步不是上传呢~唉~
博主你太聪明了,我试试,谢谢了。
我这个是打包上去的,准确的说应该同步你本地的上去,本地的文件删了之后,自然dropbox
上的文件也删了,嘿嘿
@Dianso
呵呵,备份的方法有很多,只是看个人的选择了,情问下dianso你博客里面的图片效果是怎么做的呢?
godaddy送的免费空间用来备份就不错
@恋上秋风
还算是不错的,反正每天都到点了就自动备份,备份的东西也dropbox上面,由于dropbox空间有限,现在默认保存的是3天内的备份文件,这个可以自定义,东西备份到了其他的主机上面安全点,也算是走上了云存储了,嘿嘿。
这玩意儿好用吗
@hesiway
是的,目前是不能用的呀,以后争取做成一个插件的形式,那就都可以用了,这个需要研究下,嘿嘿。
我是用的笨方法,直接导出数据库.
当然备份的方法很有很多,并没有好坏之分,之要能把数据备份下来,什么方法都是好的,并不存在笨方法,嘿嘿。这个只是我提供的一个方法,运用linux主机写的一个脚本。
主机不支持啥不用不上~~
@沪美途
呵呵,有备份放心点。
我用的是DB 插件备份,还好,从08年一直用到现在。
是挺简单的!
我都是只备份库 汗死了
@fly3q 哦~ 原來是在主機上備份,沒注意看~ ==!
@P.H
你的主机要是在国外,就没事的,还是可以备份的,速度超快,60多M不到一分钟,羡慕国外的网速。
@zwwooooo
现在的做法就是直接调用了系统命令完成打包备份,所以需要主机是linux系统,并且有ssh账号可以登进去,执行脚本,这样crontab就会自动调用这个脚本也就完成了备份了,呵呵。
漠然….我剛註冊,Dropbox就被牆…
必须有ssh权限才行啊
@奶牛
呵呵,谢谢支持。
太赞了,这方法~~~