BackupRTDB
Comments0
834pages on
this wiki
this wiki
Introduction
The following script was written to provide a quick way to run a backup of the Request Tracker mysql database. This is a good tool for routine daily backups and can be run as part of the daily cron batch.
Requirements
I wrote this for Debain Sarge/Stable and it depends on having the exim4 mailer installed. I also requires that there is a ''tmp'' dir in /root. It also assumes that ''root'' (or what ever account the cron job will run as) will have DB access rights to the RT Database.
Caveat Emptor
This script is provided with no warranties expressed or implied. Use your own risk. Milage may vary.
TODO
- Add section to detect mailer and automatically set this envvar
- Add automatic tmpfile cleanup
#!/bin/bash
#
# backupRTDB.sh
#
# $Author: www-data $
# $Revision: 1.3 $
# $Id: backupRTDB,v 1.3 2006/04/10 15:48:21 www-data Exp $
#
# Runs a mysqldump backup of the contents of the
# RT Database.
#
# Into files named rtdb-main-{date}.tar.gz
# rtdb-attach-{date}.tar.gz
#
# This script assumes that root can login to mysql locally
# without a password. If you change this then you will need to revise
# the connection strings.
#
#
# Implementation Specific Variables
#
# You can change this to another directory for the tmp files.
# I don't like to dump in /tmp
SCRTMPDIR=/root/tmp/
MAILHEADER=$SCRTMPDIRrtbakfiles-mail
rtDB=###YOURRTDATABASENAME###
rtbakWATCHER=###YOUREMAIL###
MAILSERVER=###YOUREMAILSERVER###
rtUSER=###YOURRTUSERNAME###
#
# Script Variables
#
curday=`date +"%Y%m%d%H%M%S"`
backdir=/var/backups/rt/
mainprefn="rtdb-main-"
attachprefn="rtdb-attach-"
mainfullfn=$backdir$mainprefn$curday.gz
attachfullfn=$backdir$attachprefn$curday.gz
rtdbbakCHANGES_FILE=$SCRTMPDIRrtbakfiles
HOSTNAME=`/bin/hostname`
FQDN=`/bin/hostname -f`
rtMainTables="ACL Attributes CachedGroupMembers CustomFieldValues CustomFields GroupMembers \
Groups Links ObjectCustomFieldValues ObjectCustomFields Principals Queues ScripActions \
ScripConditions Scrips Templates Tickets Transactions Users sessions"
#
# Make/Verify target dirs
#
if [ ! -d $backdir ]; then
mkdir $backdir;
fi
if [ ! -d $SCRTMPDIR ]; then
mkdir $SCRTMPDIR;
fi
# do the Main backup
mysqldump $rtDB --opt $rtMainTables | gzip > $mainfullfn
# do the Attachment backup
mysqldump $rtDB --opt --default-character-set=binary Attachments | gzip > $attachfullfn
#create message file and send to watcher
if [ -s $CHANGES_FILE ] ; then
echo HELO $MAILSERVER > $MAILHEADER
echo MAIL FROM:root@$FQDN >> $MAILHEADER
echo RCPT TO:$rtbakWATCHER >> $MAILHEADER
echo DATA >> $MAILHEADER
echo Subject: $HOSTNAME - $curday - RT Database backup >> $MAILHEADER
echo Backup of files from the RT install on ${HOSTNAME}: >> $MAILHEADER
echo This file is located at: >> $MAILHEADER
echo ${HOSTNAME}:$mainfullfn >> $MAILHEADER
echo >> $MAILHEADER
echo . >> $MAILHEADER
echo QUIT >> $MAILHEADER
exim4 -bs < $MAILHEADER
fi
MichaelErana g33k (at) efamilynj.org