|
|
Backup, Care for your WebGUI installation |
| Subcategories:
Answers in this category: | |
| [New Answer in "Backup, Care for your WebGUI installation"] | |
|
|
MySQL Backup procedures? |
| mysqldump -a is great, but sometimes you just want a bunch of individually reinstallable dbs. Here's a standard way to do it:
Create a table list of databases: mysql -uroot -ppass -B -e "show databases;" | grep -v "Database" > dbs Edit this list appropriately Create two batch files:
backitallup: #!/usr/local/bin/bash for i in `cat dbs`; do ./backitup $i; done tar -zcf servername_sql-backups_`date +%Y_%m_%d`.tar.gz *.sql rm *.sqlbackitup: #!/bin/sh echo Backing up $1 ... mysqldump -uuser -ppass -Q $1 > $1.sqlThe -Q (quote) is optional, but can get past some sites that mysqldump might balk because of spaces in names or something.
I got this from a comment: at http://www.wilshireone.com/article/2/automatic-mysql-backups | |
| [Append to This Answer] | |
|
|
MySQL backup and table maintenance script (FreeBSD specific) |
#!/bin/sh
#
# Define these variables in either /etc/periodic.conf or
# /etc/periodic.conf.local to override the default values.
#
# daily_mysql_backup_enable="YES" # do backup
# daily_mysql_maintenance_enable="YES" # perform maintenance
daily_mysql_backup_enable="NO"
daily_mysql_maintenance_enable="NO"
daily_mysql_mysqldump_args="--opt"
daily_mysql_backupdir="/data/mysql_backups"
daily_mysql_savedays="7"
daily_mysql_maintenance_args="-c -a --auto-repair -o -e -A -v"
mysql_user="user"
mysql_password="password"
# If there is a global system configuration file, suck it in.
#
if [ -r /etc/defaults/periodic.conf ]
then
. /etc/defaults/periodic.conf
source_periodic_confs
fi
# allow '~´ in dir name
eval backupdir=${daily_mysql_backupdir}
rc=0
case "$daily_mysql_backup_enable" in
[Yy][Ee][Ss])
# daily_mysql_backupdir must be writeable by user mysql
if [ ! -d ${backupdir} ] ; then
echo Creating ${backupdir}
mkdir ${backupdir}; chmod 700 ${backupdir}; chown mysql ${backupdir}
fi
echo
echo "MySQL maintenance"
# Protect the data
umask 077
dbnames=`su -l mysql -c "mysql -u ${mysql_user} -p'${mysql_password}' -B -e \"SHOW DATABASES;\" | \
grep -v Database | grep -v information | grep -v schema | grep -v test"`
rc=$?
now=`date "+%Y-%m-%dT%H:%M:%S"`
file=${daily_mysql_backupdir}/myglobals_${now}
su -l mysql -c "mysqldump -A ${daily_mysql_mysqldump_args} -u ${mysql_user} -p'${mysql_password}' | gzip -9 > ${file}.gz"
for db in ${dbnames}; do
echo -n " $db"
file=${backupdir}/mysqldump_${db}_${now}
su -l mysql -c "mysqldump ${daily_mysql_mysqldump_args} -u ${mysql_user} -p'${mysql_password}' ${db} | gzip -9 > ${file}.gz"
[ $? -gt 0 ] && rc=3
done
if [ $rc -gt 0 ]; then
echo
echo "Errors were reported during backup."
fi
# cleaning up old data
find ${backupdir} \( -name 'mysqldump_*' -o -name 'myglobals_*' \) \
-a -mtime +${daily_mysql_savedays} -delete
;;
esac
echo ""
case "$daily_mysql_maintenance_enable" in
[Yy][Ee][Ss])
echo
echo "Performing Maintenance..."
su -l mysql -c "mysqlcheck ${daily_mysql_maintenance_args} -u ${mysql_user} -p'${mysql_password}'"
if [ $? -gt 0 ]
then
echo
echo "Errors were reported during the maintenance."
rc=3
fi
;;
esac
echo ""
exit $rcbrandt_21sATyahooDOTcom | |
| [Append to This Answer] |
| Previous: |
|
| Next: |
|
| ||||||||