Mysql Full Backup Script, Hope it can help you.
#!/bin/sh
###################################################################
# Name:Mysql_Full_Backup.sh
# PS:MySQL DataBase Full Backup.
# Write by:Jason
# Last Modify:2009-11-20
###################################################################
# Define Variable Please Modify By Fact
# Define Script Directory
scriptsDir=/home/Script
# Define Database Directory
mysqlDir=/srv/mysql
# Define Database User & Name
user=bkuser
userPWD=pwd
# Define Backup Directory
dataBackupDir=/home/mysqlbackup
# Define Email Content
eMailFile=$dataBackupDir/email.txt
# Define Email Address
eMail=xxxx@mail.com
# Define Backup Log File.
logFile=$dataBackupDir/mysqlbackup.log
DATE=`date -I`
echo "" > $eMailFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile
cd $dataBackupDir
# Define Backup Filename.
dumpFile=database_$DATE.sql
GZDumpFile=database_$DATE.sql.tar.gz
# Backup Database By mysqldump
$mysqlDir/bin/mysqldump -u$user -p$userPWD
–opt –default-character-set=gbk –extended-insert=false
–triggers -R –hex-blob –all-databases
–flush-logs –delete-master-logs
–lock-all-tables > $dumpFile
# Compress Backup File
if [[ $? == 0 ]]; then
tar czf $GZDumpFile $dumpFile >> $eMailFile 2>&1
echo "BackupFileName:$GZDumpFile" >> $eMailFile
echo "DataBase Backup Success!" >> $eMailFile
rm -f $dumpFile
# Delete daily backup files.
# cd $dataBackupDir/daily
# rm -f *
# Delete old backup files(mtime>2).
# $scriptsDir/rmBackup.sh
# Move Backup Files To Backup Server.
$scriptsDir/Rsync_Backup.sh
if (( !$? )); then
echo "Move Backup Files To Backup Server Success!" >> $eMailFile
else
echo "Move Backup Files To Backup Server Fail!" >> $eMailFile
fi
else
echo "DataBase Backup Fail!" >> $emailFile
fi
# Write Log File…
#echo "——————————————————–" >> $logFile
cat $eMailFile >> $logFile
# Notify ADMIN by Email.
#cat $eMailFile | mail -s "MySQL Backup" $eMail
…
Хм …