使用批处理实现mysql的数据库备份与上传
来源:站长家园 发布时间:2012-01-05 19:30:23
有一台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来每天改名.


猜你喜欢
- 今天自己写个楼层效果,有一点烦躁,小地方犯错误。各位大神来修改不足啊!!!<!DOCTYPE html><html lan
- encode() 方法返回字符串的编码版本。默认编码是当前的默认字符串编码。可给予设置不同的错误处理机制。语法以下是encode
- 写SQL语句的时候很多时候会用到filter筛选掉一些记录,SQL对筛选条件简称:SARG(search argument/SARG) wh
- 海豚本文例子主要展示了如何使用补丁、路径和转换类绘制和操作给定的顶点和节点的形状。测试可用。import matplotlib.cm as
- 时隔一年,重拾python,想在pycharm里面使用jupyter完成一些小demo,结果一年后的jupyter死活没有token,连都连
- 本文实例讲述了Python文件与文件夹常见基本操作。分享给大家供大家参考,具体如下:1、判断文件(夹)是否存在。os.path.exists
- 这几年来,我们这个行业一直都在谈用户体验,以用户为中心的设计。“用户体验”是指用户访问网站的界面、功能、相关信息的可读性、操作的方便性,交互
- Qt中正确的设置窗体的背景图片的方法大致有两种,下面将逐个讲解:一. 利用styleSheet设置窗体的背景图片使用stylesheet设置
- 没办法,只能自己研究,经过大概一天时间吧,还是搞好了,写个总结。出现这种问题,解决方法大概有这几种:1.权限不够,导致弹出空吧提示框。(直接
- 1. 概述触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。 所以触发器可以用来实现
- 以下的文章主要介绍的是SQL Serve数据库到DB2连接服务器的实现过程,我们大家都知道不同数据库平台的互连,一般对其称之为数据库的异构服
- 1. 使用ssh密钥免密远程登录服务器如果你还未曾成功远程登陆过服务器,下面这篇博客或许对你有帮助如果你成功远程登陆过服务器,Let'
- 问题描述:被搜索名字为:andy这时搜索andy正常,但是搜索a就搜不到。解决办法,在索引配置文件中的index中添加min_infix_l
- 1.官网下载MySQL下载Mysql点击下载mysql. 或点击这里下载下载完成后解压到某一个文件夹(记住这个路径,一会要用到)2.配置初始
- 众所周知windows平台漏洞百出,补丁一个接一个,但总是补也补不净。我把我所知道的看asp源码的方法总结了一下,并且用c#写了个应用程序来
- <SCRIPT LANGUAGE="JavaScript"><!-- Beginfunction si
- 使用Python语句,读取Linux远端服务器上的文件打印到控制台的代码实现:下载包:paramikoimport paramiko#服务器
- django是python语言快速实现web服务的大杀器,其开发效率可以非常的高!但因为秉承了语言的灵活性,django框架又太灵活,以至于
- 本文实例讲述了js鼠标按键事件和键盘按键事件用法。分享给大家供大家参考,具体如下:keydown,keyup,keypress:属于你的键盘
- Python可是真强大。但他具体是怎么强大的,让我们一点一点来了解吧(小编每天晚上下班回家会抽时间看看教程,多充实下自己也是好的)。废话不多