工程是一门科学,科学是严谨的。

CMD扫描目录内的文件,并将日期最新的文件通过ftp上传到服务器

1、新建批处理脚本,命名为upload_dbbak.bat存在C:\

::批处理注意事项,等号前后不要留空格,括号和关键词之间要留空格
@echo off
setlocal enabledelayedexpansion
set day=%date:~0,10%
for /f "delims=" %%a in ('dir /s/tc "C:\DBBackup"') do (
set row=%%a
set rowdate=!row:~0,10!
::echo !rowdate!
if !rowdate!==%day% (
set bakFilePath=!row:~-46!
)
)

set bakFilePath="C:\DBBackup\!bakFilePath!"
echo C:\curl\curl.exe -u DB_BAK_COPY:123456 -T !bakFilePath! ftp://192.168.23.234/DB_BAK.bak > "C:\uploadDo.bat"call "C:\uploadDo.bat"
pause

2、新建批处理脚本uploadDo.bat,内容留空,由脚本upload_dbbak.bat生成

3、打开sql server configuration manager(sql server 配置管理器),查看当前sql server(mssqlserver)服务的登录身份是哪个(local system、local service、network service)

4、右键uploadDo.bat->属性->安全->编辑->添加-> 高级->立即查找->找到对应的用户身份(我这里是network service),赋予该用户所有权限,点击确定保存

5、在ssms里执行脚本

exec master..xp_cmdshell 'C:\upload_dbbak.bat'

如果第四步不赋权,这里会报拒绝访问的错误

确定执行成功后,将该脚本配置到维护计划内,定时执行即可;

 

posted @ 2021-01-27 19:28  大圣的笑  阅读(689)  评论(0编辑  收藏  举报