[drupal建站教程]Drupal中用Drush自动备份和部署站点

更新时间:2019-11-14    来源:安装和部署    手机版     字体:

【www.bbyears.com--安装和部署】

Drush是drupal管理的必备利器,因此drush的一些命名可以很好的帮我们备份和发布站点。推荐一个drush的参考网站,可以详细的查阅drush的各个命令:
http://drushcommands.com

drush-deploy

Drush有一个命令archive-dump可以把整个站点dump成一个压缩包,还有另外一个命令archive-restore可以通过我们dump出来的压缩包恢复站点,因此这两个命令可以快速的帮我们备份和恢复站点,用起来及其方便。

几个参数说明一下:
?overwrite 如果站点存在,则覆盖站点。这个参数比较有用,尤其是多次备份到同一个地方。
?db-su 指定mysql的超级用户,配合?db-su-pw参数,如果数据库不存在,自动创建数据库。(好用吧!)



基于以上两个命令,笔者写了一个简单的小脚本,用于发布站点到另外一台机器上。
不过要用ssh登录,因此需要输入两次密码,解决办法有两种:
1. ssh密钥的方式免密码
2. 用expect调用此脚本,自动输入密码


整个代码如下,需要注意的是,使用前需要配置一下本地站点的root、dburl以及远程站点的root、dburl等参数。

其他相关drush的问题,请参考Drupal大学中关于Drush的问答: http://drupal001.net/search/apachesolr_search/drush

#!/bin/bash
##############################################################
#  Backup and deployment your site via drush
#  Usage: bash auto_backup.sh get #download remote to local
#         bash auto_backup.sh put #push local to remote
#  Version: 1.0
#  Author: robbin (robbin.joe@gmail.com)
##############################################################
 
remote_user=robbin
remote_host=192.168.6.229
 
remote_root=/var/www/html/drupal7_robbin
##if you need to restore the remote server to use this
##remote_db_url=mysql://root:root@localhost/drupal7_robbin_test
 
local_root=/Users/robbin/Works/htdocs/drupal7_robbin_test
local_db_url=mysql://root:root@localhost/drupal7_robbin_test
 
#tmp filename
file=mydrupal.tar.gz
 
##################################
### Backup remote server to local
##################################
 
if [ "$1" == "get" ]; then
  ssh $remote_user@$remote_host "drush --verbose --root=$remote_root archive-dump --destination=/tmp/$file --overwrite 2>&1"
  scp $remote_user@$remote_host:/tmp/$file .
  ###drush arr ./$file default --db-su=root --db-su-pw=root --destination=$local_dir --db-url=$db_url --overwrite
  drush --verbose arr ./$file default  --destination=$local_root --db-url=$local_db_url --overwrite
fi;
 
##################################
### Backup local server to remote
##################################
if [ "$1" == "put" ]; then
  drush --verbose --root=$remote_root archive-dump --destination=/tmp/$file --overwrite 2>&1
  scp /tmp/$file $remote_user@$remote_host:/tmp/
  ###ssh $remote_user@$remote_host "drush --verbose arr /tmp/$file default  --destination=$remote_root --db-url=$remote_db_url --overwrite 2>&1"
  ssh $remote_user@$remote_host "drush --verbose arr /tmp/$file default  --destination=$remote_root --overwrite 2>&1"
fi;

本文来源:http://www.bbyears.com/asp/79080.html

热门标签

更多>>

本类排行