Linux 平台和 Windows 平台下两种自动备份MySQL数据的脚本(Shell & Bat)和步骤
@for&ever 2009-9-2
假设MySQL数据库root 的密码是 abc123,要备份的db的name是 forandever .
脚本如下:
#!/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.
方法是设置 crontab
例如,添加如下的规则:
30 */6 * * * /root/backupDB.sh
每6小时执行一次备份
更详细的设置可以查询相关的文档。
脚本如下:
@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.
方法是添加一个“任务计划”。
步骤如下:
开始——>程序附件——>系统工具——>任务计划——>添加任务计划——>下一步——>浏览,找到backupDB.bat保存的位置,下一步,然后设置想要定时执行的时间即可。
@forandever 2009-9-2