2009年 12月 15日 的归档
简单的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系统。