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!
- 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!