首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库
会员投稿 投稿指南 RSS订阅
当前位置:主页>网络编程>Mysql教程>资讯:使用批处理实现mysql的数据库备份与上传

使用批处理实现mysql的数据库备份与上传

www.jz123.cn  2011-12-15   来源:   站长家园    责任编辑(袁袁)    我要投递新闻

  有一台windows服务器上跑着mysql的一些应用,现在需要将mysql的数据每天备份,并通过ftp上传到指定的存储服务器上

  要是在linux上,shell 脚本很容易就搞定了,在windows上习惯了点鼠标,哪里来的脚本,一时还真不知道该怎么弄.baidu,google得知可以通过批处理或者vbs脚本实现.

  批处理是比较简单的,毕竟dos的常用命令还是知道的

  解决思路:

  使用批处理文件,实现备份和上传的功能

  将批处理文件加到计划任务中实现每日定时执行脚本

  完整的批处理文件如下 文件名dbbk.bat

  @echo off

  :: this batch is to backup the db files on windows to linux server

  :: created by yahoon

  :: 2008.4.9

  ::backup the mysql db

  mysqldump -uroot –pxxxx demo>c:demo %date:~0,10%.sql

  ::pause

  :: wait press any key to continue

  :: ready to delete

  ::form the ftp command file

  echo open 服务器ip>c:ftpdemo.txt

  echo ftp用户名>>c:ftpdemo.txt

  echo ftp密码>>c:ftpdemo.txt

  echo put c: demo %date:~0,10%.sql >>c:ftpdemo.txt

  echo bye>>c:ftpdemo.txt

  ::transfer the file to server via ftp

  ftp -i -s:c:ftpdemo.txt

  ::pause

  ::clean the tmp files

  del c:ftpdemo.txt

  del c: demo %date:~0,10%.sql

  说明:

  1. 双冒号::后面的内容为注释,不会执行

  2. 两处pause语句是调试的时候用的,运行pause的结果是屏幕上显示”按任意键继续”,脚本等着用户按键才会往下执行

  3. demo %date:~0,10%.sql 是备份的文件名,最后的结果是demo20080409.sql ,其中%date:~0,10%表示的是date命令输出的字符串中从第0个开始的10个字符.这点很重要,因为我在英文的OS上,执行这个脚本在备份的时候报文件名错误.这是因为当你执行date命令的时候结果是

  Tue 04/08/2008

  要达到demo20080409.sql这样的效果文件名就要这么写demo%date:~10,4%%date:~4,2%%date:~7,2%.sql

  最后提一下写的过程中解决的一个问题

  由于脚本的思路是做备份,然后通过ftp上传

  所以最开始写的时候没有::form the ftp command file 这一段.而是写好一个ftpdemo.txt放在那

  这就出现了一个问题,由于生成的sql文件名每天都变,这样ftp命令也得改.写死的ftpdemo.txt文件肯定就实现不了.

  想出了个笨主意是批处理文件里面生成的sql文件就定义死文件名为demo.sql,这样ftpdemo.txt文件也可以写死.然后等上传以后,再通过linux的脚本通过crontab来每天改名.


上一篇:MySQL的一级防范检查列表 下一篇:SQL的密码管理的六个危险判断

评论总数:0 [ 查看全部 ] 网友评论


关于我们隐私版权广告服务友情链接联系我们网站地图