免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 840 | 回复: 0
打印 上一主题 下一主题

[原创] 一个Mysql自动备份脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-11 14:34 |只看该作者 |倒序浏览

[原创] 一个Mysql自动备份脚本
http://www.chinaunix.net 作者:
aspbiz
  发表于:2006-12-04 23:04:41

发表评论
】【
查看原文
】【
MySQL讨论区
】【
关闭

写了一个Mysql备份的脚本,大家看看,有什么不妥地方。  
这是我写的第一个Shell脚本,大家帮忙看看,  
有谁需要的,我可以发给他。  
可以将这个脚本放进crontab,每天凌晨执行一次,自动备份  
这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。
#!/bin/bash
#This is a ShellScript For Auto DB Backup
#Powered by aspbiz
#2004-09
#Setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy
#默认情况下,用root(空)登录mysql数据库,备份至/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

aspbiz
回复于:2004-10-05 20:05:38

大家看看呀,
一个自动备份的脚本,支持多种备份方式,自动翻转。

http://www.chinaunix.net/jh/17/418474.html

简单的shell脚本:
!#/bin/sh
/xxx/xxx/mysql/bin/mysqldump -uroot -ppasswd --opt database_name > dbbak.sql
然后通过crontab自动执行以上shell脚本就可以了
--opt是制定数据库的
passwd是你自己设置mysql数据库root用户的密码
mysql安装完,默认root没有密码
如果没有密码就不要管它了mysqldump -uroot -p --opt database_name >xxxx.sql 即可。
问题:备份之前要STOP MYSQL?
回答:不用stop MYSQL.可以定时作备份 .


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/23246/showart_230113.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP