Drush Commands

Basic Drush

// Download a module or theme
drush dl cck

// Enable module or theme
drush en cck

// clear cache all, don't need sudo
drush cc all

// Get help message on command
drush help pm-update

// List site aliases
drush sa

// Get status on particular site, via site-alias
drush @math status

Advanced Drush

Using Drush to sync a remote server

Sync Dev Server with Staging Server

// drush core-rsync <source&gt; <destination&gt;
drush core-rsync @dev @stage

Download drushextras

drush dl drush_extras

Drush pushkey

This command creates a ssl public/private key in your home directory and copies the public key to a remote server. Subsequent drush commands will use this public/private key for authentication.

// okay substitute your username for "boris" and your server for "badinoff.com"
drush pushkey boris@badinoff.com

Drush Git Backup

Install DGB

cd <drush directory&gt;/commands/
git clone https://github.com/scor/dgb.git

Setup DGB for a site

# from DRUPAL_ROOT 
# cd up one directory
cd ..
# create directory for backed up database
mkdir databases
# initialize a git repository
git init

Back up Site

cd <DRUPAL_ROOT&gt;
drush dgb-backup

What is in DGB Archive

The DGB instance directory is the directory up from your DRUPALROOT.

each site’s db dump is in databases/

Database dump for default is in databases/default.sql

There is a Git repository of your site’s files

# from DRUPAL_ROOT cd into the DGB instance directory
cd ..
# see list of git commits
git log
# see what files have changed since last call to drush dgb-backup
git status

Clone the Site for development

# from DRUPAL_ROOT
cd ../..
# create a dev directory parallel to other site
mkdir dev
cd dev
git clone <path to dgb instance&gt;
# create a new branch called "my-dev-branch"
git branch my-dev-branch
# checkout the new dev branch
git checkout my-dev-branch
# now create a new database with the database dump
# change <dbuser&gt;, <dbpasswd&gt;, <devdbname&gt; and <path-to-dgb-instance&gt;
# and also the substitute default.sql for the name of your databasedump
mysql -u <dbuser&gt; -p <dbpasswd&gt; <devdbname&gt; < <path-to-dgb-instance&gt;/databases/default.sql
# now finally update settings.php to point to your dev database
vim sites/default/settings.php
# finally check that there is an .htaccess file in your new dev
# <DRUPAL_ROOT&gt; if not, copy it over from the cloned siteF

Another Way to Copy @live to @dev

# Core-rsync copies all of the files from one site instance to another.
# The first time you sync you can use --include-conf option to copy settings.php.
drush core-rsync @live @dev --include-conf
# Next change database settings to use @dev database.
vi <document-root&gt;/sites/default/settings.php

# After first sync use w/out --include-conf and it will preserve the existing settings.php.
drush core-rsync @live @dev

# Sync databases.
drush sql-sync @live @dev