使用shell脚本备份奔跑在win系统上的MySQL
最近接触了一个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
因为MySQL
的bin
目录我加到了环境变量里面,所以没写绝对路径,试着用cmder
执行一下,大概是这效果。
接下来就是添加计划任务了,今天的备份删掉,测试计划任务能不能执行成功。
计划任务
计划任务这块得用windows
的计划任务去做了,百度一下吧,懒得贴图,主要是程序或脚本这一块,需要用sh
去执行脚本,sh
这个命令在$CNDER_HOME\vendor\git-for-windows\usr\bin
目录下,这个算是程序或脚本,编写的shell
脚本算是参数,所以这里要酱紫。
程序或脚本是sh.exe
的绝对路径,参数就是shell
脚本的绝对路径。
我暂时定在了每天17:40
分执行,看一下效果吧,计划任务程序库显示操作成功完成。
接下来看一眼备份文件夹。
木有问题撒,最后计划任务调回每天24时执行就好了,说实话我第一次这样搞。。。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。