您的位置:首页 > 运维架构 > Shell

Linux平台和Windows平台下两种自动备份MySQL数据的脚本(Shell&Bat)和步骤

2009-09-02 14:50 1356 查看
Linux 平台和 Windows 平台下两种自动备份MySQL数据的脚本(Shell & Bat)和步骤
@for&ever 2009-9-2

假设MySQL数据库root 的密码是 abc123,要备份的db的name是 forandever .

一、Linux 平台:

1.1> 编写脚本

脚本如下:

#!/bin/bash
backupDir=/bak/DB/
bakFileNameTail=`_BAK_+"%Y%m%d%H%M%S"`
mysqldump -uroot -pabc123 forandever|gzip > ${backupDir}forandever${bakFileNameTail}.gz
exit 0

脚本简单说明:

1、定义备份文件存放的路径 backupDir为 /bak/DB/
2、定义备份文件名称的后部分为字符串 _BAK_ + 当前的系统时间
3、通过 mysqldump 和gzip 命令备份文件并压缩

将以上的脚本保存为 backupDB.sh.

1.2> 设置脚本定时执行

方法是设置 crontab
例如,添加如下的规则:
30 */6 * * * /root/backupDB.sh
每6小时执行一次备份
更详细的设置可以查询相关的文档。

二、Windows 平台:

2.1> 编写脚本

脚本如下:

@echo off

set backupDir=e:/bak/DB/
set bakFileNameTail=_BAK_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
c:/mysql/bin/mysqldump -uroot -pabc123 forandever>%backupDir%forandever%bakFileNameTail%.sql
c:/file/7z.exe a -tzip %backupDir%forandever%bakFileNameTail%.zip %backupDir%forandever%bakFileNameTail%.sql
del %backupDir%forandever%bakFileNameTail%.sql /q

脚本简单说明:

1、定义备份文件存放的路径 backupDir 为 e:/bak/DB/
2、定义备份文件名称的后部分为字符串 _BAK_ + 当前的系统时间
3、通过 mysqldump 导出数据文件
4、使用压缩软件 7z 压缩数据文件
5、静默删除第三步的导出文件

Windows平台下的第四步中,如果系统使用的是 winrar ,那么这里命令修改为:
c:/file/rar a %backupDir%forandever%bakFileNameTail%.rar %backupDir%forandever%bakFileNameTail%.sql

完整的使用rar 压缩的bat脚本为:

@echo off

set backupDir=e:/bak/DB/
set bakFileNameTail=_BAK_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
c:/mysql/bin/mysqldump -uroot -pabc123 forandever>%backupDir%forandever%bakFileNameTail%.sql
c:/file/rar a %backupDir%forandever%bakFileNameTail%.rar %backupDir%forandever%bakFileNameTail%.sql
del %backupDir%forandever%bakFileNameTail%.sql /q

将以上的脚本保存为 backupDB.bat.

2.2> 设置脚本定时执行

方法是添加一个“任务计划”。
步骤如下:
开始——>程序附件——>系统工具——>任务计划——>添加任务计划——>下一步——>浏览,找到backupDB.bat保存的位置,下一步,然后设置想要定时执行的时间即可。

@forandever 2009-9-2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: