频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

让数据库更安全,Mysql自动备份脚本

来源:ChinaITLab 收集整理 作者: 出处:巧巧读书 2006-08-08 进入讨论组

  可以将这个脚本放进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
  
  _________________
  do
  {
  goodgoodstudy();
  daydayup();
  }
  while (!died)URL查看 http://www.qqread.com/sys-soft/s197326.html 更多文章 更多内容请看路由安全配置专题系统安全设置FreeBSD系统安全管理专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章