[rt-users] More on RT Backup procedures

Richard E. Brown Richard.E.Brown at DARTWARE.COM
Wed Apr 3 09:47:39 EST 2002


Folks:

A while back, I asked if anyone had created a script that would back up RT's SQL database and its (source) files. Darren Chamberlain <darren at boston.com> graciously responded with the script below. 

I'm reposting it because there was a typo that hung me up for a while. (The 'tar cf ...' was initially set to tar up $PATH, instead of $RT_PATH.) I have corrected this in the script below. 

I also wanted to add these notes:

1)	I have not tested this script either. I am using an adaptation of these techniques for my own backups. (And I haven't worked up my nerve to try reloading the database yet :-) But I can't consider that we're really backed up 'til I test this.

2)	In my own script, I added certain options to the MYSQL_OPTS variable to lock the database and flush the update log files during the dump to ensure a consistent backup.

MYSQL_OPTS="-urt_user -prt_password --flush-logs --lock-tables --opt -h rt_host RT_DB_NAME"

3)	Any restore script should take into account the update-log files, and reload them after restoring the backed-up database.

Take care!

Rich Brown
Hanover, NH USA

===== On 8 March 2002, Darren Chamberlain wrote =====

# You could do this with a short shell script (Warning! This is
# untested! I just threw this together right now!)

#!/bin/sh

DATE=`date +"%Y-%m-%d"`
RT_PATH=/path/to/rt
MYSQL_OPTS="-urt_user -prt_password -h rt_host RT_DB_NAME"

case $* in
  restore)
    shift
    RESTORE_DATE=$1 
    #
    # Restore db
    mysql $MYSQL_OPTS < /backups/$RESTORE_DATE/database

    # Restore rt
    cd $RT_PATH
    gunzip -c /backups/$RESTORE_DATE/rt.tar.gz | tar xf -

    ;;
  save)
    # Assumes that /backups exists, of course
    if ! test -d /backups/$DATE; then mkdir /backups/$DATE; fi

    # Backup db and RT dir
    mysqldump $MYSQL_OPTS > /backups/$DATE/database

    tar cf /backups/$DATE/rt.tar $RT_PATH
    gzip --best /backups/$DATE/rt.tar

    ;;
  *)
    echo "Usage: $0 (save|restore)"
    exit 1
    ;;
esac

exit 0




More information about the rt-users mailing list