免费注册 查看新帖 |

Chinaunix

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

mysql 自动备份----aspbiz [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-10-13 13:23 |只看该作者 |倒序浏览
写了一个Mysql备份的脚本,大家看看,有什么不妥地方。
这是我写的第一个Shell脚本,大家帮忙看看,
有谁需要的,我可以发给他。
可以将这个脚本放进crontab,每天凌晨执行一次,自动备份
这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。
代码:
  1. #!/bin/bash
  2. #This is a ShellScript For Auto DB Backup
  3. #Powered by aspbiz
  4. #2004-09
  5. #Setting
  6. #设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
  7. #默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy
  8. #默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
  9. DBName=mysql
  10. DBUser=root
  11. DBPasswd=
  12. BackupPath=/root/
  13. LogFile=/root/db.log
  14. DBPath=/var/lib/mysql/
  15. #BackupMethod=mysqldump
  16. #BackupMethod=mysqlhotcopy
  17. #BackupMethod=tar
  18. #Setting End
  19. NewFile="$BackupPath"db$(date +%y%m%d).tgz
  20. DumpFile="$BackupPath"db$(date +%y%m%d)
  21. OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz
  22. echo "-------------------------------------------" >> $LogFile
  23. echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
  24. echo "--------------------------" >> $LogFile
  25. #Delete Old File
  26. if [ -f $OldFile ]
  27. then
  28.    rm -f $OldFile >> $LogFile 2>&1
  29.    echo "[$OldFile]Delete Old File Success!" >> $LogFile
  30. else
  31.    echo "[$OldFile]No Old Backup File!" >> $LogFile
  32. fi
  33. if [ -f $NewFile ]
  34. then
  35.    echo "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFile
  36. else
  37.    case $BackupMethod in
  38.    mysqldump)
  39.       if [ -z $DBPasswd ]
  40.       then
  41.          mysqldump -u $DBUser --opt $DBName > $DumpFile
  42.       else
  43.          mysqldump -u $DBUser -p$DBPasswd --opt $DBName > $DumpFile
  44.       fi
  45.       tar czvf $NewFile $DumpFile >> $LogFile 2>&1
  46.       echo "[$NewFile]Backup Success!" >> $LogFile
  47.       rm -rf $DumpFile
  48.       ;;
  49.    mysqlhotcopy)
  50.       rm -rf $DumpFile
  51.       mkdir $DumpFile
  52.       if [ -z $DBPasswd ]
  53.       then
  54.          mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1
  55.       else
  56.          mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1
  57.       fi
  58.       tar czvf $NewFile $DumpFile >> $LogFile 2>&1
  59.       echo "[$NewFile]Backup Success!" >> $LogFile
  60.       rm -rf $DumpFile
  61.       ;;
  62.    *)
  63.       /etc/init.d/mysqld stop >/dev/null 2>&1
  64.       tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1
  65.       /etc/init.d/mysqld start >/dev/null 2>&1
  66.       echo "[$NewFile]Backup Success!" >> $LogFile
  67.       ;;
  68.    esac
  69. fi
  70. echo "-------------------------------------------" >> $LogFile
复制代码

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP