搜索|收藏|地图|订阅|图片|论坛|商城

Lunix环境下MySQL数据库的自动备份脚本

来源:赛迪网 编辑:lixiangjing 时间:2008-07-04
可以将这个脚本放进crontab,每天凌晨执行一次,自动备份

 

这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。

 

#Setting

 

#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,及备份方式

 

#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy

 

#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz

 

#!/bin/bash

 

#This is a ShellScript For Auto DB Backup

 

#Powered by aspbiz

 

#Setting

 

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 $DBName1 > $DumpFile

 

fif

 

tar czvf $NewFile $DumpFile >> $LogFile 2>&1

 

echo "[$NewFile]Backup Success!" >> $LogFile

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?