主页 > Drupal > 用Drush自动备份和部署Drupal站点

用Drush自动备份和部署Drupal站点

PDF版本

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.drupal001.com/2015/02/drush-deployment/
版权所有: Drupal与高性能网站架构 http://www.drupal001.com


,

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注


− 6 = 三

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

引用:0

下面所列的是引用到本博客的链接
用Drush自动备份和部署Drupal站点 来自 Drupal与高性能网站架构
顶部