mysql| Backup
Write a MySQL backup script, let's see what's wrong with the place.
This is the first shell script I wrote, so let's see,
I can send it to whoever needs it.
You can put this script into the crontab, perform it once every morning, and automatically back up
This script executes up to a maximum of one time per day and retains only the last five days of backup on the server.
Code: The following is program code
#!/bin/bash
#This is a shellscript for Auto DB Backup
#Powered by Aspbiz
#2004-09
#Setting
#设置数据库名, database login name, password, backup path, log path, data file location, and backup method
#默认情况下备份方式是tar, it could be mysqldump,mysqldotcopy.
#默认情况下, log in to the MySQL database with root (empty), back up to/root/dbxxxxx.tgz
Dbname=mysql
Dbuser=root
Dbpasswd=
backuppath=/root/
Logfile=/root/db.log
dbpath=/var/lib/mysql/
#BackupMethod =mysqldump
#BackupMethod =mysqlhotcopy
#BackupMethod =tar
#Setting End
Newfile= "$BackupPath" db$ (date +%y%m%d). tgz
Dumpfile= "$BackupPath" db$ (date +%y%m%d)
Oldfile= "$BackupPath" db$ (date +%y%m%d--date= ' 5 days ago '). tgz
echo "-------------------------------------------" >> $LogFile
echo $ (date + "%y-%m-%d%h:%m:%s") >> $LogFile
echo "--------------------------" >> $LogFile
#Delete Old File
If [f $OldFile]
Then
Rm-f $OldFile >> $LogFile 2>&1
echo "[$OldFile]delete old File success!" >> $LogFile
Else
echo "[$OldFile]no old Backup file!" >> $LogFile
Fi
If [f $NewFile]
Then
echo [$NewFile]the Backup File is Exists,can ' t backup! ' >> $LogFile
Else
Case $BackupMethod in
mysqldump)
If [-Z $DBPasswd]
Then
Mysqldump-u $DBUser--opt $DBName > $DumpFile
Else
Mysqldump-u $DBUser-p$dbpasswd--opt $DBName > $DumpFile
Fi
Tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo "[$NewFile]backup success!" >> $LogFile
RM-RF $DumpFile
;;
Mysqlhotcopy)
RM-RF $DumpFile
mkdir $DumpFile
If [-Z $DBPasswd]
Then
Mysqlhotcopy-u $DBUser $DBName $DumpFile >> $LogFile 2>&1
Else
Mysqlhotcopy-u $DBUser-P $DBPasswd $DBName $DumpFile >> $LogFile 2>&1
Fi
Tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo "[$NewFile]backup success!" >> $LogFile
RM-RF $DumpFile
;;
*)
/etc/init.d/mysqld Stop >/dev/null 2>&1
Tar czvf $NewFile $DBPath $dbname >> $LogFile 2>&1
/etc/init.d/mysqld Start >/dev/null 2>&1
echo "[$NewFile]backup success!" >> $LogFile
;;
Esac
Fi
echo "-------------------------------------------" >> $LogFile