Here are some useful Drupal scripts! The first is a script that will put your Drupal directory's UNIX file permissions back to a secure and useful state. The second is great if you have a production and a staging website. You often need to clone your production website back to production then change some configuration to make the staging website "development". This is pretty basic; for instance, I sometimes need to disable google analytics as well in this script. The third is basically a listing of the crucial Drupal 7 modules I install in every site I have.
DrupalPermissionsSetup.sh
#!/bin/bash
#assumes your site is installed at /home/username/public_html
USERNAME=username
INSTALL_DIR=public_html
if [ "$1" != "--really" ]; then
cat $0
exit 0
fi
cd /home/$USERNAME/
chown -R $USERNAME:www-data $INSTALL_DIR
find $INSTALL_DIR -type d -exec chmod u=rwx,g=rx,o= '{}&' \;
find $INSTALL_DIR -type f -exec chmod u=rw,g=r,o= '{}' \;
#this code handles multisite install files directories
find $INSTALL_DIR/sites -type d -name files -exec chmod ug=rwx,o= '{}' \;
for d in $INSTALL_DIR/sites/*/files; do
chown -R www-data:$USERNAME $d
find $d -type d -exec chmod ug=rwx,o= '{}' \;
find $d -type f -exec chmod ug=rw,o= '{}' \;
done
AfterCloningProduction.sh
#!/bin/bash
#clone your production database to staging then run this script using drush to get into development mode
#set some important variables. Need to customize the favicon updating line and the developer modules line at least, plus these variables:
USERNAME=username
INSTALL_DIR=public_html
DEV_EMAIL=testingemail@example.com
CURRENT_WD=`pwd`
cd /home/$USERNAME/$INSTALL_DIR
drush vset -y preprocess_css 0
drush vset -y preprocess_js 0
drush vset -y error_level 2
drush vset -y site_mail $DEV_EMAIL
#this line changes your favicon to default - I leave my theme's default favicon as the Drupal logo and then I can easily see which tab is development and which is production
drush php-eval '$s=variable_get("theme_THEMENAME_settings",""); $s["default_favicon"]=1; variable_set("theme_THEMENAME_settings", $s);'
#developer modules - add more?
drush en -y devel field_ui rules_admin views_ui
drush cc all
cd $CURRENT_WD
My always-install modules
drush dl admin_menu globalredirect pathauto subpathauto views devel wysiwyg xmlsitemap redirect token ctools diff tadaa drush en -y admin_menu_toolbar views_ui globalredirect subpathauto pathauto devel wysiwyg xmlsitemap redirect diff tadaa wget 'http://download.cksource.com/CKEditor/CKEditor/CKEditor%203.6.6.2/ckeditor_3.6.6.2.zip' unzip ckeditor_3.6.6.2.zip -d sites/all/libraries