Linux下的mysql数据库自动备份


Linux下的mysql数据库自动备份的实现:

建立一个文件mysqldb,内容如下:
#basic config
bakPath=/home/tyf/dbbak/
dbName=tyhr
bakPath="$bakPath""$dbName"/"$dbName"
bakType=.sql
dumpPath=/usr/local/mysql5/bin/mysqldump
dbUser=root
dbPassword=111111
bakDaysShort=14
todayInMonth=$[$(date +%d --date="$bakDaysShort days ago") % 15]

#write log
logFile="$bakPath"db.log
newFile="$bakPath"$(date +%y%m%d)"$bakType"
oldFile="$bakPath"$(date +%y%m%d --date="$bakDaysShort days ago")"$bakType"
echo "--------------------------------------------" >> $logFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $logFile
echo "--------------------------------------------" >> $logFile


#delete old file
if [ $todayInMonth -ne 1 ]
then
if [ -f $oldFile ]
then
rm -f $oldFile >> $logFile 2>&1
echo "[$oldFile] Delete old file succeed!" >> $logFile
else
echo "[$oldFile] No old backup file" >> $logFile
fi
fi

#create new file
if [ -f $newFile ]
then
echo "[$newFile] The backup file exists. Can't backup" >> $logFile
else
"$dumpPath" "$dbName" --user="$dbUser" --password="$dbPassword" > $newFile
echo "[$newFile] Backup succeed!" >> $logFile
fi
修改前9行的路径和数据库的用户名与密码,把它拷贝到/etc/cron.daily中,它就会自动在每天的4:02的时候执行这段脚本,自动的进行mysql的数据库备份任务

相关内容