@echo off
rem --------------------- 配置: ftp上传参数,及本地文件目录(数据库备份的临时目录)-----------------
set "PUT_FTP_SERVER=192.168.1.100"
set "PUT_FTP_PORT=21"
set "PUT_FTP_USERNAME=ftpuser"
set "PUT_FTP_PASSWORD=ftppasswd"
set "PUT_DIR=/"
set "LOCAL_DIR=D:/sql_dbbackup/"
rem ----------------------程序开始-----------------------------------------------------------------------
echo begin_backup_db
rem 调用数据库备份存储过程,参数为本地目录. 数据库返回"过期需要删除的备份文件"
sqlcmd -E -S 127.0.0.1,1333 -d master -v BAK_PATH="'%LOCAL_DIR%'" -Q "execute dbo.p_job_backup $(BAK_PATH);" -t 4800 -h -1 -W | findstr bak>>del_file.txt
rem 开始自动上传(上传完删除对应的本地文件)
echo begin_ftp_upload
call :uploaddir "%LOCAL_DIR%" "%PUT_DIR%"
rem 检查是否上传失败,失败则记录数据库日志
echo begin_check
for /f "delims=" %%i in ('dir /b /a-d "%LOCAL_DIR%*.bak"') do echo %%~nxi>>local_file.txt
if not exist local_file.txt goto :delete_remote
for /f "delims=" %%i in

该脚本用于配置定期备份SQL Server数据库并通过批处理脚本上传到FTP服务器。首先设置FTP服务器的详细信息和本地备份目录,然后调用数据库备份存储过程并删除过期的本地备份文件。接着,脚本将上传新的备份文件到FTP服务器,并检查上传状态。如果上传失败,脚本会记录错误日志并删除远程的过期文件。最后,启动邮件发送错误日志。

6691

被折叠的 条评论
为什么被折叠?



