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

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

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;

时间: 2024-09-24 22:22:49

Drupal中用Drush自动备份和部署站点的相关文章

linux vps面板kloxo 创建站点及自动备份

kloxo 是一款linux vps服务器 非常优秀国外免费面板,国内用户保有量也非常大.汉化也很到位了.之前笔者以介绍了 一键安装包的使用非常方便(一键安装kloxo).尽管如此单对于初次使用的朋友可能还是有点陌生,今天抽时间老鹰就给新手朋友门做一份使用操作的基本教程.可以使新手朋友们很快上手. 上一节安装教程以介绍了 初次修改管理员密码和登陆显示中文操作 接下来为了安全起见 我们需要修改mysql 的密码 如下图: 这个过程可能会有点慢 快的几十秒 慢的要1-2两分钟. 密码改好后,在创建站

link中用codefirst产生的表,如何自动备份,如何备份codefirst产生的表?

问题描述 link中用codefirst产生的表,如何自动备份,如何备份codefirst产生的表? link中用codefirst产生的表,如何自动备份,如何备份codefirst产生的表? 解决方案 http://stackoverflow.com/questions/13946541/restore-and-backup-with-entity-framework

Linux VPS主机定时自动备份网站及MYSQL数据库的脚本

从我们开始学习建站开始,不论我们是用免费的虚拟主机,还是省吃俭用购买的付费主机,以及我们在更大的项目需要转向VPS或者服务器存储:不论我们是不是技术科班出身,还是跟老左一样,看到网友们都有自己的网站于是热情澎湃的也搭建一个玩玩:不论我们的网站是大还是小,有盈利还是没有盈利,都要学会基本的自我维护,尤其是网站数据的备份.   我们不要过分的依赖和信任主机商给我们提供的备份,即便我们购买的很牛.很贵的服务商的产品,他们也可能会由于各种的可能性导致数据丢失或者奔溃的情况,我们可以选择定期手工备份或者用

linux下oracle自动备份脚本

linux下oracle自动备份脚本  vi /home/oracle/backup.sh   //编写脚本 以下为脚本内容 time=` date +"%Y%m%d%H%M" ` //变量time 获取当前系统时间 su - oracle -c "exp hbskjt_0113/password owner=hbskjt_0113 file=/home/oracle/hbskjt_$time.dmp"  //导库脚本 cd /home/oracle tar zcv

aix下Oracle rac环境rman备份策略部署

为客户部署的备份策略,替换了和客户相关的重要信息 数据库备份方案部署过程: 考虑到系统是高可用性系统(7×24),因此采用rman来热备份db,具体备份步骤部署如下: 1. 把db改为归档模式,2个节点的归档日志分别放在各自的/orabak/archlog目录下 2. 把db的备份文件放在2个节点各自的/orabak/dbbak目录下,每次备份的文件会分布在2个节点上,这样做的目的对2个节点来说相对都能节约一些空间,因为/orabak目前暂时挂载在rootvg下了,由于datavg里已经没有了空

CentOS下自动备份网站和数据库的脚本

接触CentOS已经有几个月的时间了,使用了太久的windows在刚接触linux命令行界面的时候还真有点不太适应,但到最后也就应了大家的那句话,跟linux接触的时候越长,就越为她的简洁高效而折服,我手上有一台服务器安装的操作系统是CentOS5.4,上面部署的有网站和数据库应用,基本构架:centos+nginx+mysql+php,但由于网站数据比较多,自己手动备份的话太费时间,所以就打算做一个自动运行的脚本,帮助我在每周的指定时间备份网站内容和数据库内容,用tar打包,然后再传到我另外一

实现Linux中Mysql数据库自动备份并上传到远程FTP服务器

这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到远程FTP服务器的部署,在Linuxhttp://www.aliyun.com/zixun/aggregation/31093.html">技术交流群中,也有朋友会遇到这方面的问题,可以将此文分享给群友共益. 注意:任何的操作都会具有风险性,请在本机实际测试通过之后再部署到服务器环境,这样即熟

备份校验两不误,MySQL自动备份还原校验设计详解

作者介绍 庞阔,优朋普乐传媒运维基础部经理.负责数据库运营管理及平台设计开发,监控设计改进,问题跟踪处理,机房网络维护管理,目前四个专利已在专利局申请中.擅长数据库运维管理及Shell.Perl.PHP编写.   背景   最近关于数据库故障出现的问题较多,不论大小公司对数据的备份要求都很高,但对校验数据备份的有效性要求更为迫切,很多公司对于自动备份和还原都已经形成体系,但对于还原后的备份有效性校验可能都不太完善,而且目前网上也没有较为完善的检验机制(可能我没找到).   对数据库备份的有效性校

IIS备份 自动备份IIS设置和恢复IIS设置(自动还原Web服务器)_win服务器

WIN2003 IIS --> 右键 --> 所有任务 --> 备份/还原配置 备份后文件会保存在 %WINDIR%\system32\inetsrv\MetaBack 目录下... 备份IIS设置 IIS本身自带了备份和恢复IIS设置的功能.在恢复IIS设置之前需要备份IIS.备份的过程很简单:在Windows 2000 Server中找到"开始"菜单中的"管理工具",点击其中的"Internet服务管理器",在服务器名称上右