Simple automatic Drupal upgrade script

UPDATE: Drush has added support to upgrade Drupal core with the 'drush up' command, which I now utilize. I will keep the method below for those who can't use Drush if your host does not allow SSH.

Here's what I do for a simple Drupal core upgrade (from my root directory):

tar -cvzf drupal20100503.tar.gz drupal/
wget http://ftp.drupal.org/files/projects/drupal-6.16.tar.gz
tar zxvf drupal-6.13.tar.gz
./drupal_upgrade.sh
drush updatedb
drush cache clear

I tweaked Justin’s drupal update script slightly. The drupal_upgrade.sh script I use:

#!/bin/bash
## Drupal Automatic Upgrade Script
## Be sure DRUPALDIR, BACKUPDIR, DBUSER, DBPASS, DBNAME are correct
TIMESTAMP=`date +%y%m%d%H%M`
BACKUPDIR=drupal_backup_$TIMESTAMP
## Drupal directory (relative to script)
DRUPALDIR='drupal'
## Database config
DBUSER='user'
DBPASS='pass'
DBNAME='drupaldb'
## Backup Drupal files
mkdir $BACKUPDIR/
cp -pr $DRUPALDIR/includes/ $BACKUPDIR/
cp -pr $DRUPALDIR/misc/ $BACKUPDIR/
cp -pr $DRUPALDIR/modules/ $BACKUPDIR/
cp -pr $DRUPALDIR/profiles/ $BACKUPDIR/
cp -pr $DRUPALDIR/scripts/ $BACKUPDIR/
cp -pr $DRUPALDIR/sites/ $BACKUPDIR/
cp -pr $DRUPALDIR/themes/ $BACKUPDIR/
cp -p $DRUPALDIR/cron.php $BACKUPDIR/
cp -p $DRUPALDIR/index.php $BACKUPDIR/
cp -p $DRUPALDIR/robots.txt $BACKUPDIR/
cp -p $DRUPALDIR/update.php $BACKUPDIR/
cp -p $DRUPALDIR/xmlrpc.php $BACKUPDIR/
cp -p $DRUPALDIR/.htaccess $BACKUPDIR/
## Backup Drupal database
mysqldump -u $DBUSER -p$DBPASS $DBNAME > $BACKUPDIR/$DBNAME.sql
## Remove old and copy new files
rm -r $DRUPALDIR/includes
cp -pr drupal-6.*/includes/ $DRUPALDIR/
rm -r $DRUPALDIR/misc
cp -pr drupal-6.*/misc/ $DRUPALDIR/
rm -r $DRUPALDIR/modules
cp -pr drupal-6.*/modules/ $DRUPALDIR/
rm -r $DRUPALDIR/profiles
cp -pr drupal-6.*/profiles/ $DRUPALDIR/
rm -r $DRUPALDIR/scripts
cp -pr drupal-6.*/scripts/ $DRUPALDIR/
#chmod -R +w $DRUPALDIR/sites/default
#rm -r $DRUPALDIR/sites
#cp -pr drupal-6.*/sites/ $DRUPALDIR/
rm -r $DRUPALDIR/themes
cp -pr drupal-6.*/themes/ $DRUPALDIR/
rm $DRUPALDIR/cron.php
cp -p drupal-6.*/cron.php $DRUPALDIR/
rm $DRUPALDIR/index.php
cp -p drupal-6.*/index.php $DRUPALDIR/
rm $DRUPALDIR/robots.txt
cp -p drupal-6.*/robots.txt $DRUPALDIR/
rm $DRUPALDIR/update.php
cp -p drupal-6.*/update.php $DRUPALDIR/
rm $DRUPALDIR/xmlrpc.php
cp -p drupal-6.*/xmlrpc.php $DRUPALDIR/
rm $DRUPALDIR/.htaccess
cp -p drupal-6.*/.htaccess $DRUPALDIR/