批处理bat实现数据库定时数据库备份并上传FTP

需求场景:需要讲服务器上的数据库每天进行备份并上传到指定的FTP服务器上

数据库自动备份

我们首先创建一个txt文件并改后缀名为.bat然后编写一下内容

rem ========================MySQL backup start========================
@echo off
 
::设置变量
::拼接时间参数(拼接结果为YYYYmmdd)
set dateTime=%date:~0,4%%date:~5,2%%date:~8,2%
::早上10点以前时间变量中会出现空格,把时间变量中的空格替换为0
set "dateTime=%dateTime: =0%"
::本机安装的mysql的bin目录路径
set mysqlBinPath=C:\Program Files\MySQL\MySQL Server 5.7\bin\
::创建日期文件夹(如果想对于备份文件夹再按时间创建子文件夹可以进行一下操作)
::md E:\MySQL_bakup\%dateTime%
::备份文件存储的目标路径
set backupPath=E:\MySQL_bakup\
::备份文件的名字前半部分-后半部分使用的是上面的时间参数
set backupFileName=test_
::备份文件的保存天数
set days=365
::要备份的数据库服务器的ip
set host=127.0.0.1
::要备份的数据库服务器的端口
set port=3306
::要备份的数据库登录名
set user=root
::要备份的数据库登录密码
set password=123
::要备份的数据库名
set dbName=test
::默认的字符集
set charSet=utf8
 
 
::根据上面设置的days参数删除以前的备份数据(如果想永久保存数据则可以注释)
::forfiles /p "%backupPath%" /m %backupFileName%*.sql /d -%days% /c "cmd /c del @path"
 
::进入mysql安装目录的bin目录下
cd %mysqlBinPath%
::执行备份操作
mysqldump --opt --single-transaction=TRUE --user=%user% --password=%password% --host=%host% --protocol=tcp --port=%port% --default-character-set=%charSet% --routines --events %dbName% > %backupPath%\%backupFileName%%dateTime%.bak
@echo on
rem ========================MySQL backup end========================

批处理实现FTP上传

rem ========================FTP upload start========================
@Echo Off
::获取当前时间
set dateTime2=%date:~0,4%%date:~5,2%%date:~8,2%
::设置文件名前缀
set backupFileName2=test_
::文件的本地地址
set localPath=E:\MySQL_bakup\%backupFileName2%%dateTime%.bak
::上传文件FTP地址
set ftpip=
::用户名
set username=
::密码
set password=
//需要上传到指定位置的路径
set ftpPath=.\test”
::打开FTP连接
Echo open %ftpip% >ftp.up
::用户名密码
Echo %username%>>ftp.up
Echo %password%>>ftp.up
::进入需要上传文件的路径
Echo cd %ftpPath% >>ftp.up
::在该路径下创建一个以时间命名的文件夹
Echo mkdir %dateTime2% >>ftp.up
::再进入这个以时间命名的文件夹
Echo cd %dateTime2% >>ftp.up
::文件上传
Echo binary>>ftp.up
Echo put %localPath%>>ftp.up
Echo bye>>ftp.up
FTP -s:ftp.up

windows定时任务触发

1.单击“开始”,找到“管理工具-任务计划程序”,点击打开(如图);
批处理bat实现数据库定时数据库备份并上传FTP_第1张图片
2.点击“新文件夹…”新建一个存放你定时计划的文件夹(也可以不新建,为了分类管理方便,建议新建),填写文件夹名称完后,点击确定即完成本步骤;
批处理bat实现数据库定时数据库备份并上传FTP_第2张图片
3.右键新建的文件夹选中“创建任务”即可创建一个任务,或者选中新建的文件夹在点击右侧菜单的“创建任务…”选项;
批处理bat实现数据库定时数据库备份并上传FTP_第3张图片
4.根据需求,填写各tab页下选项,以下提供我的设置参考;其中“触发器”与“操作”需要先点击“新建”按钮来创建;“条件”、“设置”和“历史记录”默认选项即可;
批处理bat实现数据库定时数据库备份并上传FTP_第4张图片
5.以上设置完成后,窗口上就会多一条任务,同样可以通过右键它或者在右侧菜单选项选择来控制该任务的状态。这样,就能定时执行你的bat指令。
批处理bat实现数据库定时数据库备份并上传FTP_第5张图片

你可能感兴趣的:(运维)