MENU

使用shell脚本备份奔跑在win系统上的MySQL

2018 年 09 月 17 日 • 杂乱文章

最近接触了一个asp的项目,跑在windows server 2008服务器上,本以为数据库应该是sql server,结果不是,用的是MySQL,所以就在服务器上装了一个,扔在了D盘,windows系统跑mysql没啥子问题,蛋疼的问题在自动备份这里,脚本不知道怎么写,最低得保证一天一备吧,于是查了一下,都是用bat去写的,而且看得我也有点晕,所以我有一个大胆的想法,用shell脚本去备份,至于windows怎么去执行shell脚本,可以去了解一下cmder官网,里面集合了N多linux命令,也算是win系统上的必备神器了,说搞就搞。

shell脚本内容
#!/bin/bash
date=`date +%F`
db=`mysql -uroot -ppasswd -Bse 'show databases;' | grep -Evi "information|performance|mysql|test"`
path=E:/backup/mysql/$date
mkdir -p $path

for i in $db
  do
    mysqldump -uroot -ppasswd $i > $path/$i-$date.sql && cd $path && tar zcf $i-$date.tar.gz $i-$date.sql && rm -f $i-$date.sql
done

因为MySQLbin目录我加到了环境变量里面,所以没写绝对路径,试着用cmder执行一下,大概是这效果。

接下来就是添加计划任务了,今天的备份删掉,测试计划任务能不能执行成功。

计划任务

计划任务这块得用windows的计划任务去做了,百度一下吧,懒得贴图,主要是程序或脚本这一块,需要用sh去执行脚本,sh这个命令在$CNDER_HOME\vendor\git-for-windows\usr\bin目录下,这个算是程序或脚本,编写的shell脚本算是参数,所以这里要酱紫。

程序或脚本是sh.exe的绝对路径,参数就是shell脚本的绝对路径。

我暂时定在了每天17:40分执行,看一下效果吧,计划任务程序库显示操作成功完成。

接下来看一眼备份文件夹。

木有问题撒,最后计划任务调回每天24时执行就好了,说实话我第一次这样搞。。。

最后编辑于: 2018 年 12 月 10 日
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码