PDA

View Full Version : MysqlHotCopy backup script


kontrabass
02-07-2007, 02:41 PM
I'm looking for a backup solution that will:

- shut down forums with a custom 'backup in progress' message

- execute mysqlhotcopy to backup specified DB's to specified dir

- roll over backups to keep only x number backups on file

- reopen forums

The following is a script posted by masalaman over at vb.com. It does everything except shut down / open the boards:


#!/bin/sh

# List of databases to be backed up separated by space
dblist="testdb"

# Directory for backups
backupdir=/home/mysql/backup

# Number of versions to keep
numversions=4

# Full path for MySQL hotcopy command
hotcopycmd=/usr/bin/mysqlhotcopy

# MySQL Username and password
userpassword=" --user=root --password=password"

# Create directory if needed
mkdir -p ${backupdir}
if [ ! -d ${backupdir} ]
then
echo "Invalid directory: ${backupdir}"
exit 1
fi

# Hotcopy begins here
echo "Hotcopying MySQL Databases..."
RC=0
for database in $dblist
do
echo "Hotcopying $database ..."
$hotcopycmd $userpassword $database ${backupdir}
RC=$?
if [ $RC -gt 0 ]
then
break;
fi

# Rollover the backup directories
i=$numversions
mv ${backupdir}/${database} ${backupdir}/${database}.0 2> /dev/null
rm -fr ${backupdir}/${database}.$i 2> /dev/null
while [ $i -gt 0 ]
do
mv ${backupdir}/${database}.`expr $i - 1` ${backupdir}/${database}.$i 2> /dev/null
i=`expr $i - 1`
done
done

if [ $RC -gt 0 ]
then
echo "MySQL Hotcopy failed!"
exit $RC
else
# Hotcopy is complete. List the backup versions!
ls -l ${backupdir}
echo "MySQL Hotcopy is complete!"
fi
exit 0


Can this be modified to shut down / open the forums? Thanks much!