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

2008-06-06 06:18:35 北京时间
可以将这个脚本放进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

 

rm -rf $DumpFile

 

;;

 

mysqlhotcopy)

 

rm -rf $DumpFile

 

mkdir $DumpFile

 

if [ -z $DBPasswwd ]

 

then

 

mysqlhotceopy -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>&

 

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

 

rm -rf $DumpFile

 

;;

 

*)

 

/etc/init.d/mysqld stop >/dev/null 2>&1

 

tar czvf $NewFile $DBPath$DBName >> $LogFlile 2>&1

 

/etc/init.d/mysqld start >/dev/null 2>&1

 

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

 

;;

 

esac

 

fi

echo "-------------------------------------------" >> $LogFile




发表评论

请文明参与讨论,禁止漫骂攻击。本站保留不刊登无关和不雅评论的权力。


用户名: 密码: 匿名

相关新闻
一、连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码
当我们建好数据库及表后,首先想到的就是向数据库的表中输入数据.
1.在使用MySQL和php的时候出现过中文乱码问题 (1) 只要是gb2312,
首先要作出决策,你是否想要使用最新的开发版本或最终的稳定版本
首次安装、运行MySQL时,你可能会遇到一些错误,使MySQL服务器不

广告
© 2008 The Czz5 Company. All Rights Reserved. 关于我们 - 联系我们 - 广告业务 - 网站地图 - 版权声明 - 友情连接 - 网站投稿 - 致信编辑