编制一个Mysql数据库自动备份脚本

mysql|备份|脚本|数据|数据库

可以将这个脚本放进crontab,每天凌晨执行一次,自动备份这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。

代码:

#!/bin/bash
#This is a ShellScript For Auto DB Backup
#Powered by SearchDatabase
#2005-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

时间: 2024-11-03 20:26:55

编制一个Mysql数据库自动备份脚本的相关文章

mysql 数据库自动备份问题

问题描述 mysql 数据库自动备份问题 我昨天看了看数据库备份,也成功地自动备份出来了,但是备份出来的是.frm文件,直接导入数据库的话,会报错,说是我第一行有错误,和关键字冲突 Query: ? Error occured at:2015-08-10 10:17:42 Line no.:4110 Error Code: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your

实现Linux中Mysql数据库自动备份并上传到远程FTP服务器

这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到远程FTP服务器的部署,在Linuxhttp://www.aliyun.com/zixun/aggregation/31093.html">技术交流群中,也有朋友会遇到这方面的问题,可以将此文分享给群友共益. 注意:任何的操作都会具有风险性,请在本机实际测试通过之后再部署到服务器环境,这样即熟

linux mysql 数据库自动备份的设置方法

mysql 数据库表自动备份shell 脚本 调用示例:  代码如下 复制代码 mysql_data_backup.bash 110 www_cas mysql_data_backup.bash 112 www_qiche mysql_data_backup.bash 112 www_health 包含功能: 1.参数检测 2.生成备份日志 3.自动检测指定数据库中的表,单独备份每个表,最后打包为tar文件 4.单独备份每个表,方便恢复用 5 支持多个数据主机判断 以下为文件内容  代码如下 复

mysql数据库自动备份还原方法

mysql教程数据库教程自动备份还原方法 一.自动备份:将以下代码保存为*.bat批处理脚本,然后再添加Windows定时作业,如每天凌晨2点执行: set s=%date:~0,4%%date:~5,2%%date:~8,2%%time:~1,1%%time:~3,2%%time:~6,2% mysqldump -u root -ppassword databasename > d:databasename_%s%_bak.sql 说明:databasename 为数据库名 password为

windows计划任务实现mysql数据库自动备份批处理命令

方法一 具体代码 备份  代码如下 复制代码 @echo off & setlocal ENABLEEXTENSIONS :: ---------- 配置项 ---------- :: 备份放置的路径,加 set BACKUP_PATH=D:Backup :: 要备份的数据库名称,多个用空格分隔 set DATABASES=database1 database2 database3 :: MySQL 用户名 set USERNAME=root :: MySQL 密码 set PASSWORD=1

linux unix mysql 数据库自动备份

文件名 mysql_data_backup.sh (需要执行权限) mysql 数据库表自动备份shell 脚本 (第二版) 调用示例:  代码如下 复制代码 mysql_data_backup.sh 包含功能: 1.生成备份日志 2.自动检测指定数据库中的库列表,单独备份每个库,最后打包为tar文件 3.可指定备份存档文件(.tar) 保留的数目, 按时间正序清理以前的存档 4. 恢复时可以登录 mysql 以后直接用 source xxx.sql 自动删除和创建数据库,并还原数据. 需要修改

windows中MYSQL数据库自动备份及自动清理之掉备份的批处理文件

把下面代码保存成aaa.bat @echo off echo. echo MySQL数据库备份 echo ***************************** echo. echo 今天是 %date% echo 时间是 %time% echo 删除文件夹的命令是rd /s/q d:\decode echo 删除文件夹下的所有文件的命令是del /s/q d:\decode echo. echo ***************************** rd /s/q D:\%Ymd%\

MYSQL数据库自动本地/异地双备份/MYSQL增量备份

构建高安全电子商务网站之(网站文件及数据库自动本地/异地双备份)架构图 继续介绍Linux服务器文件备份,数据库备份,数据安全存储相关的电子商务系统架构.针对安全性有多种多样的解决方案,其中数据备份是重中之重的首要工作. 电子商务网站更加注重考虑数据安全,数据备份方案,包括本地备份.异地备份架构.其中Linux服务器的备份方案非常多,本文介绍一个大众化适用的解决方案,通过编写Shell脚本来完成自动备份.本架构包括备份网站文件.数据库,自动本地备份并FTP上传备份脚本,完成相应本地备份.异地备份

一个Mysql自动备份脚本

mysql|备份|脚本 可以将这个脚本放进crontab,每天凌晨执行一次,自动备份 这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上. 代码: #!/bin/bash #This is a ShellScript For Auto DB Backup #Powered by aspbiz #2004-09 #Setting #设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式 #默认情况下备份方式是tar,还可以是mysqldump,mysqldot