备份网站和 MySQL 数据库的批处理文件

备份网站和 MySQL 数据库的批处理文件
目的:在指定的目录建立一个以当前日期为名的新文件夹,将 wwwroot 下所有目录和 自动导出的 MySQL 数据库分别压缩到此文件夹中实现备份。
需要修改和设置的地方:MySQL 用户名“mysqluser”、MySQL 密码“mysqlpassword”、建立一个名为“sqldata.txt”的文本文件,存放 MySQL 要备份的 MySQL 数据库名称,一个数据库名一行、WinRAR 压缩程序和相关目录位置。

引用内容 引用内容
@echo off
echo 备份所有网站...

rem WinRAR 压缩程序的位置
set rarcmd=c:\progra~1\winrar\winrar.exe

rem 网站目录 WWWROOT 位置
set wwwroot=D:\wwwroot\

rem 保存备份文件的文件夹
set backupdir=E:\Backup\www\

rem MySQL 备份命令 mysaldump 的位置
set sqldumpcmd="C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe"

rem MySQL 用户名
set user=mysqluser

rem MySQL 密码
set pass=mysqlpassword

rem 获得当前日期
set today=%date:~0,4%%date:~5,2%%date:~8,2%

rem 建立当前日期为名称的文件夹,用于保存备份文件
md %backupdir%%today%

rem 获得 WWWROOT 目录所有网站文件夹
dir/b %wwwroot% > wwwdata.txt

echo 准备备份的网站已保存为 wwwdata.txt,你可以根据需要编辑此文件...
pause

rem 分别把网站文件夹压缩到备份目录
for /f %%f in (wwwdata.txt) do %rarcmd% a -r -s -m5 -v51200k -vn %backupdir%%today%\%%f.rar %wwwroot%%%f

echo ===============================================

echo 备份所有MySQL数据库...

rem 导出 SQL 数据文件
for /f %%f in (sqldata.txt) do %sqldumpcmd% -u%user% -p%pass% -l -q %%f > %%f.sql


echo 压缩 MySQL 数据库...
for /f %%f in (sqldata.txt) do %rarcmd% u -df -m5 %backupdir%%today%\%%f.mysql.rar %%f.sql

echo 删除为压缩导出的 MySQL 数据库文件...
for /f %%f in (sqldata.txt) do del %%f.sql

rem 清理变量
set rarcmd=
set wwwroot=
set backupdir=
set today=
set sqldumpcmd=
set user=
set pass=
pause


2011-09-15 在 2011-07-05 的 Update:压缩 MySQL 数据库前停止 MySQL 服务是错误的,这样 mysaldump  将无法连接到数据库。现在更新为添加 -l -q 参数尝试。并且也许使用 7-zip 来压缩更那个,下面是使用 7-zip 压缩的代码。

引用内容 引用内容
@echo off
echo 备份所有网站...

rem WinRAR 压缩程序的位置
set rarcmd=D:\tools\7-zip\7z.exe

rem 网站目录 WWWROOT 位置
set wwwroot=D:\wwwroot\

rem 保存备份文件的文件夹
set backupdir=E:\Backup\www\

rem MySQL 备份命令 mysaldump 的位置
set sqldumpcmd="C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe"

rem MySQL 用户名
set user=mysqluser

rem MySQL 密码
set pass=mysqlpassword

rem 获得当前日期
set today=%date:~0,4%%date:~5,2%%date:~8,2%

rem 建立当前日期为名称的文件夹,用于保存备份文件
md %backupdir%%today%

rem 获得 WWWROOT 目录所有网站文件夹
dir/b %wwwroot% > wwwdata.txt

echo 准备备份的网站已保存为 wwwdata.txt,你可以根据需要编辑此文件...
pause

rem 分别把网站文件夹压缩到备份目录
for /f %%f in (wwwdata.txt) do %rarcmd% a -r -y -v51200k %backupdir%%today%\%%f.7z %wwwroot%%%f

echo ===============================================

echo 备份所有MySQL数据库...


rem 导出 SQL 数据文件
for /f %%f in (sqldata.txt) do %sqldumpcmd% -u%user% -p%pass% -l -q %%f > %%f.sql


echo 压缩 MySQL 数据库...
for /f %%f in (sqldata.txt) do %rarcmd% a %backupdir%%today%\%%f.mysql.7z %%f.sql

echo 删除为压缩导出的 MySQL 数据库文件...
for /f %%f in (sqldata.txt) do del %%f.sql

rem 清理变量
set rarcmd=
set wwwroot=
set backupdir=
set today=
set sqldumpcmd=
set user=
set pass=
pause
[本日志由 parno 于 2011-09-14 09:27 AM 更新]
上一篇: 淘宝网“返回页面顶部”的连接
下一篇: SWFUpload v2 说明文档[中文使用手册]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: BAT 批处理 wwwroot MySQL 备份 mysaldump
相关日志:
评论: 0 | 引用: 0 | 查看次数: 7280
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 500 字 | UBB代码 关闭 | [img]标签 关闭