简单的WP备份脚本
现在,写blog的人是越来越多了;这部分人里,自己建站的也越来越多了;又在这部分人里,用WP来建的也越来越多了。
而建过站的人,都知道备份的重要性。但是手工备份又显然太麻烦了,所以我写了这个脚本来自动备份,放cron里以后,基本上就不用去关心什么了,哈哈,不过在加crontab的时候,要注意用户,如果是用root跑,可能会因为读不到当前用户的key而备份失败哦。
条件是你的空间支持ssh登录,并且事先做好了rsa公钥,登录的时候不需要输入密码。
此脚本会生成两个文件,一个是文件的打包,一个是数据库的打包。上脚本吧:
#!/bin/sh #WP备份脚本 #方便地备份wordpress的文件及数据库(限mysql) #作者: bones7456 #需要事先设置好这个HOST的rsa key 不然无法用ssh登录 HOST="gnometwe@li2z.cn" #远程的WP文件所在目录,此目录下要有 wp-config.php REMOTE_PATH="www/li2z" #本地保存目录(最好是绝对路径),留空为当前目录 LOCAL_PATH="/home/lily/li2z.backup" #备份文件的前缀,默认自动按时间生成 PRE=`date +%F-%H-%M-%S` [ -z $LOCAL_PATH ] || cd $LOCAL_PATH #先备份文件 ssh $HOST "cd $REMOTE_PATH; tar cf - -X exclude ." | gzip > $PRE.tar.gz #从文件取得数据库信息 tar zxvf $PRE.tar.gz ./wp-config.php if [ -f wp-config.php ];then DB_NAME=`grep "^define('DB_NAME'" wp-config.php | cut -d\' -f 4` DB_USER=`grep "^define('DB_USER'" wp-config.php | cut -d\' -f 4` DB_PASSWORD=`grep "^define('DB_PASSWORD'" wp-config.php | cut -d\' -f 4` rm wp-config.php else echo "Something wrong ..." exit 1 fi #再备份数据库 ssh $HOST mysqldump -u${DB_USER} -p${DB_PASSWORD} $DB_NAME | gzip > $PRE.sql.gz #这个可选,删除15天前的备份文件 #要打开的话,记得建个专门的目录存放备份,以免误删其他文件 #find . -maxdepth 1 -name "*.gz" -mtime +15 -exec rm {} \; |
PS: 稍作修改应该也可以用于非WP的blog系统。
Tweets that mention I am LAZY bones ? : 简单的WP备份脚本 -- Topsy.com 在 2009年12月15日 13:28 说:【 】
[…] This post was mentioned on Twitter by 骨头, 想入非非. 想入非非 said: RT @bones7456: li2z新文章: 简单的WP备份脚本 (http://cli.gs/3u7Bz) […]
muxi 在 2009年12月15日 13:44 说:【 】
阁下把输出的RSS修理一下吧,总是没有任何格式,乱糟糟的,看不清楚啊
BTW:能输出全文么?
bones7456 在 2009年12月15日 13:53 说:【 】
唉。我不想再回答关于GR和RSS的任何问题了: http://li2z.cn/2009/11/12/feedburner/
DingWL 在 2009年12月15日 14:20 说:【 】
哦哦哦哦哦哦哦,很少用blog的飘过……
evlos 在 2009年12月15日 22:45 说:【 】
呵呵 学习一下 ~ ssh 是好东西 ~
shellex 在 2009年12月17日 13:10 说:【 】
太好了~~~谢谢骨头酱
bones7456 在 2009年12月17日 20:45 说:【 】
呵呵,壳壳正好用上了~
今天能看见山 在 2009年12月22日 12:22 说:【 】
恰巧前两天我也弄了这么一个脚本,跟你的不同之处是我那个脚本是运行在WP服务器上,定时向我的路由器(运行DDWRT–一种linux系统)里面备份。可以参考一下:
http://www.faquir.net/archives/327
另外,文件其实也可以实现增量备份,可以用rsync。因为我的站数据比较少,全部备份成本也不高,所以最近也就还没太研究那东西怎么用。
bones7456 在 2009年12月22日 20:18 说:【 】
呵呵,握手~
你的路由器是什么型号?有多少可用的空间呢?
今天能看见山 在 2009年12月22日 23:28 说:【 】
刚才发了一个带复杂链接的上不来,估计被作为垃圾评论拦截了。
我那个路由器是WRT300N,你可以去查一下。带USB接口,我接了个16G的U盘,24小时给我下载呢。
更多ddwrt的资料和路由器,你可以去恩山论坛那看看。地址我就不写了,你上网搜一下就有了。
bones7456 在 2009年12月23日 08:32 说:【 】
呵呵,看上去真不错啊~ 以后有机会我也折腾这个去~
今天能看见山 在 2009年12月22日 23:24 说:【 】
路由器是在恩山那买的裸板,带USB接口的,自己装了个16G的U盘。我的是这款:
http://item.taobao.com/auction/item_detail-0db1-e0efa3494167e669a5c6f965750af3c0.htm
你可以上论坛看看去,www.right.com.cn
之前还用过一款不到200的,也是裸板,就是性能差点,但是有USB接口,装个U盘下载一点问题也没有。