mysql实现自动备份数据库

1、新建.sh文件,内容是

# encoding: utf-8
#配置参数
USER=root #数据库用户名
PASSWORD=123456 #数据库用户密码
DATABASE=cnm #数据库名称
WEBMASTER="[email protected]" #管理员邮箱地址,用以发送备份失败消息提醒
BACKUP_DIR=/home/HuiLife_Backup #备份文件存储路径
LOGFILE=/home/HuiLife_Backup/backup.log  #日志文件路径
DATE=`date +"%Y%m%d-%H%M"` #日期格式(作为文件名) 

FILENAME=$DATABASE$DATE.gz #压缩文件名
OPTIONS="-u$USER  -p$PASSWORD cnm | gzip "
#mysqldump 参数 详情见帮助  mysqldump -help

#判断备份文件存储目录是否存在,否则创建该目录
if [ ! -d $BACKUP_DIR ]; then
    mkdir -p "$BACKUP_DIR"
fi

#开始备份之前,将备份信息头写入日记文件
echo "———————————————–" >> $LOGFILE
echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE

#切换至备份目录
cd $BACKUP_DIR

#使用mysqldump 命令备份制定数据库,并以格式化的时间戳命名备份文件
mysqldump -u$USER -p$PASSWORD  $DATABASE | gzip > $BACKUP_DIR/$FILENAME

#判断数据库备份是否成功
if [[ $? == 0 ]]; then
    #输入备份成功的消息到日记文件
    echo "[$BACKUP_DIR/$DATABASE$FILENAME] Backup Successful!" >> $LOGFILE
else
    echo "Database Backup Fail!" >> $LOGFILE
    #备份失败后向网站管理者发送邮件提醒,需要mailutils或者类似终端下发送邮件工具的支持
    #如果需要发邮件,且mail配置好了,就去掉下面的注释
    echo "数据库备份错误,请及时检查!时间:"`date +"%Y年%m月%d日  %H点%M分"` | mail -s "Database DATABASE Daily Backup Fail" $WEBMASTER
fi

#输出备份过程结束的提醒消息
echo "Backup Process Done"

核心内容是:

filename=`date +%Y%m%d`
/usr/bin/mysqldump -u root -proot cnm | gzip > /root/HuiLife_Backup/cnm$filename.gz

 (1)邮件提醒功能依赖sendmail

2、辅助执行权限并测试

chmod +x autobackup
./autobackup

3、实现自动备份

要求安装Cron服务(定时任务管理服务器)

 vi /etc/crontab

最后加入:(每天18:45执行)

45 18 * * * root  /root/autobackup

Done!

时间: 2024-12-19 06:48:21

mysql实现自动备份数据库的相关文章

Mysql教程-自动备份数据库

   批处理命令: set"Ymd=%date:~,4%%date:~5,2%%date:~8,2%" set"hMs=%time:~,2%%time:~3,2%%time:~6,2%" mysqldump-uroot --password=password weixin> D:\mysql_back\weixin_%Ymd%_%hMs%.sql 命令解释 要用mysqldump需要设置环境变量 Mysqldump.exe程序在mysql安装目录的bin目录下

mysql自动备份数据库与自动删除临时文件

mysql自动备份数据库与自动删除临时文件,有需要的朋友可以参考下. 一.每日23:00自动删除临时文件 首先查看一下crontab的任务列表: crontab -l 然后新建: crontab -e 添加一行: 00 03 * * * rm -rf /www/cmstest/my120/public/scripts/jpgraph/* 保存退出. 重启服务:  /etc/rc.d/init.d/crond restart 二.每日24:00自动备份数据库 利用系统crontab来定时执行备份文

如何使用PHP自动备份数据库

如何使用PHP自动备份数据库 1.前言 mysql数据库的备份方式有很多: 例如: 1.使用mysqldump函数 mysqldump -u username -p dbname table1 table2 ...  > BackupName.sql dbname参数表示数据库的名称 table1和table2参数表示需要备份的表的名称,为空则整个数据库备份: BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径.通常将数据库被分成一个后缀名为sql的文件: 基本

mssql server 2005自动备份数据库

(转) (1)启动[sql server Management Studio],在[对象资源管理器]窗口里选择[管理]——[维护计划]选项. 2)右击[维护计划],在弹出的快捷菜单里选择[维护计划向导]选项 ,弹出如图所示的[维护计划向导]对话框,单击[下一步]按钮 3)弹出如图所示[选择目标服务器]对话框,在[名称]文本框里可以输入维护计划的名称:在[说明]文本框里可以输入维护计划的说明文字:[在服务器]文本框里可以输入要使用的服务器名:最后选择正确的身份证信息,单击[下一步]按钮. (4)弹

在linux和windows下自动备份数据库

摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶段. Linux的详细步骤为:1.准备文件. 2.连接linux 3.实际操作也就是写命令 windows的详细步骤为:1.准备文件. 2.编辑任务和计划程序. 所用软件:notepad++,ssh 一.linux 1.准备工作(可以在windows下执行本操作) 创建三个文件 1.1文件名:exp

MSSQL Express版本自动备份数据库

由于Express版本的数据库没有自动备份数据库的功能,所以需要自己搭建好备份功能 一.具体原理: 1.利用SQL备份命令:Backup Database 2.使用sqlcmd执行备份命令 3.使用系统计划任务定时执行备份 二.具体操作步骤: 1.在数据库创建一个存储过程:sp_BackupDataBase 问:为什么要存储过程来执行Backup命令呢? 答:因为可以有更多的自定义操作 USE [master] GO /****** Object: StoredProcedure [dbo].[

SQL Server 定时自动备份数据库

在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库,这篇文章介绍使用SQL Server 数据库代理中的作业定时自动备份数据库. 1.启动SQL Server代理服务,如下图: 绿色角标说明已启动. 2.右键“作业”,选择“新建作业”,弹出新建作业对话框,如下: 3.输入名称,所有者.类别默认不用修改,点击左侧“步骤”,在步骤面板中新建步骤,如下图: 输入步骤名(自定义)和命令. 命令代码: declare @name varchar(250) set @name='C:\My

debian mysql 定时自动备份的脚本

#!/bin/sh LOG=/var/log/mysql-backup.log # mysql db info USER_ROOT=XXXXXX USER_PWD=XXXXXXX # mysql data stored dir TODAY=`date +%F` STOREDIR=/mnt/tf-card/mysql-back/$TODAY mkdir $STOREDIR echo "*** PATH:$STOREDIR mysql-backup ***" >> $LOG #

mysql自动备份数据库

可以选择设置需要备份的库,自动备份压缩,自动删除 7 天前的备份,需要使用 crontab 定时执行. #!/bin/bash # 要备份的数据库名,多个数据库用空格分开 databases=(db1 db2 db3) # 备份文件要保存的目录 basepath='/root/backup/mysql/' if [ ! -d "$basepath" ]; then mkdir -p "$basepath" fi # 循环databases数组 for db in $