mysql 自动备份----aspbiz
时间:2007-02-17 来源:PHP爱好者
写了一个Mysql备份的脚本,大家看看,有什么不妥地方。
这是我写的第一个Shell脚本,大家帮忙看看,
有谁需要的,我可以发给他。
可以将这个脚本放进crontab,每天凌晨执行一次,自动备份
这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。
代码:
这是我写的第一个Shell脚本,大家帮忙看看,
有谁需要的,我可以发给他。
可以将这个脚本放进crontab,每天凌晨执行一次,自动备份
这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。
代码:
CODE:
[复制到剪切板]
<br /><br />#!/bin/bash <br />#This is a Shellscript For Auto DB Backup <br />#Powered by aspbiz <br />#2004-09 <br /><br />#Setting <br />#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式 <br />#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy <br />#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz <br />DBName=mysql <br />DBUser=root <br />DBPasswd= <br />BackupPath=/root/ <br />LogFile=/root/db.log <br />DBPath=/var/lib/mysql/ <br />#BackupMethod=mysqldump <br />#BackupMethod=mysqlhotcopy <br />#BackupMethod=tar <br />#Setting End <br><br>NewFile="$BackupPath"db$(date +%y%m%d).tgz <br />DumpFile="$BackupPath"db$(date +%y%m%d) <br />OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz <br /><br />echo "-------------------------------------------" >> $LogFile <br />echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile <br />echo "--------------------------" >> $LogFile <br />#Delete Old File <br />if [ -f $OldFile ] <br />then <br> rm -f $OldFile >> $LogFile 2>&1 <br> echo "[$OldFile]Delete Old File Success!" >> $LogFile <br />else <br> echo "[$OldFile]No Old Backup File!" >> $LogFile <br />fi <br /><br />if [ -f $NewFile ] <br />then <br> echo "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFile <br />else <br> case $BackupMethod in <br> mysqldump) <br> if [ -z $DBPasswd ] <br> then <br> mysqldump -u $DBUser --opt $DBName > $DumpFile <br> else <br> mysqldump -u $DBUser -p$DBPasswd --opt $DBName > $DumpFile <br> fi <br> tar czvf $NewFile $DumpFile >> $LogFile 2>&1 <br> echo "[$NewFile]Backup Success!" >> $LogFile <br> rm -rf $DumpFile <br> ;; <br> mysqlhotcopy) <br> rm -rf $DumpFile <br> mkdir $DumpFile <br> if [ -z $DBPasswd ] <br> then <br> mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1 <br> else <br> mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1 <br> fi <br> tar czvf $NewFile $DumpFile >> $LogFile 2>&1 <br> echo "[$NewFile]Backup Success!" >> $LogFile <br> rm -rf $DumpFile <br> ;; <br> *) <br> /etc/init.d/mysqld stop >/dev/null 2>&1 <br> tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1 <br> /etc/init.d/mysqld start >/dev/null 2>&1 <br> echo "[$NewFile]Backup Success!" >> $LogFile <br> ;; <br> esac <br />fi <br /><br />echo "-------------------------------------------" >> $LogFile <br><br> ;
非常全面的一个php技术网站,php爱好者站 http://www.phpfans.net 有相当丰富的文章和源代码.
php爱 好者站 http://www.phpfans.net 文章|教程|下载|源码|论坛.
php爱 好者站 http://www.phpfans.net 文章|教程|下载|源码|论坛.
相关阅读 更多 +