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/