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'
如果第四步不赋权,这里会报拒绝访问的错误
确定执行成功后,将该脚本配置到维护计划内,定时执行即可;
!!!转发请注明出处和作者名称。
!!!转发请注明出处和作者名称。
!!!转发请注明出处和作者名称。
重要的事,说三遍。