第一步新建.bat后缀的文件,复制以下内容到文件中,并修改对应的服务器地址、用户名、密码,和需要
上传的文件地址即可,修改完成后双击bat文件即可开始备份压缩上传
注:多数据库备份,统一使用root用户导出,文件起始部分内容为需要配置的内容。
非MySql数据库的自动备份只需要修改mysqldump口令为其他数据库口令(如Oracle的Exp)。
循环时只校验db_length长度,所以db_length长度必须小于或等于db数组的长度。
echo off
rem mysqldump命令位置
set mysql_dir=C:\Program Files\MySQL\MySQL Server 8.0\bin\
rem jar.exe命令位置
set winrar_dir=E:\mygonju\kfgonju\jdk\jdk\bin\
rem sql生成位置
set bak_dir=C:\Users\dong\Desktop\
rem mysql ip地址和端口
set host=127.0.0.1
set port=3306
rem 打印目录信息
echo ---------------------------------
echo mysql backup at %date% %time%
echo mysql_dir=%mysql_dir%
echo winrar_dir=%winrar_dir%
echo bak_dir=%bak_dir%
echo host=%host%:%port%
echo ---------------------------------
rem 获取时间
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set hour=%time:~0,2%
set hour=%hour: =0%
set minutes=%time:~3,2%
set seconds=%time:~6,2%
set fulldate=%year%%month%%day%%hour%%minutes%%seconds%
rem 设置ftp服务器登录参数
@set ftp_server=101.132.134.210 21
@set ftp_user=root
@set ftp_password=...
rem 定义数据库
set db_length=1
set db[0]=seanew162
rem 开始数据库备份
set db_index=0
:LoopStart
if %db_index% equ %db_length% goto :eof
set db_curr=0
for /f "usebackq delims==. tokens=1-3" %%i in (`set db[%db_index%]`) do (
set db_curr=%%j
)
rem [%db_curr%] 数据库开始备份
echo database [%db_curr%] begin backup.
rem 跳转到mysqldump命令目录下
cd C:\Program Files\MySQL\MySQL Server 8.0\bin\
rem 执行mysqldump 命令
mysqldump --no-defaults -h%host% -P%port% -uroot -pcmsroot %db_curr% > %bak_dir%%db_curr%.sql
rem 执行压缩命令
%winrar_dir%jar cf %bak_dir%seanew162bf.rar %bak_dir%%db_curr%.sql
rem 删除生成的sql文件
del %bak_dir%%db_curr%.sql
rem [%db_curr%] 数据库已经备份了
echo database [%db_curr%] already backup.
set /a db_index=%db_index% + 1
goto LoopStart
@echo on
rem 通过FTP上传到远处服务器
echo open %ftp_server%>ftp.txt
echo user>>ftp.txt
echo %ftp_user%>>ftp.txt
echo %ftp_password%>>ftp.txt
echo cd /usr>>ftp.txt
echo put %bak_dir%MySql_Bak_Auto_11.rar>>ftp.txt
echo bye>>ftp.txt
ftp -n -s:ftp.txt
del ftp.txt
echo ---------------------------------
echo mysql auto backup end
echo ---------------------------------
@echo off
本文参考博客点击跳转