利用TSQL脚本将备份数据自动上传到ftp

继SQL Server自动备份并压缩文件后,需要上传到指定FTP。

 

思路是通过 ftp -n -s:c:\upload.ftp 来实现自动上传。

c:\upload.ftp是FTP命令集,格式如下:

 

open 192.168.1.150
user TEST
123
cd /backupdir
lcd c:\sqlback
prompt off
put filename
bye

 

那么TSQL的代码主要是生成这个文件:

 

declare @filename varchar(100)
declare @ftpfile varchar(260)
declare @batchcmd varchar(200)
declare @path varchar(200)

set @path = 'D:\sqlback\'
set @filename = 'mydatabase_db_' + convert(varchar(10), getdate(),112) + '.rar'
set @ftpfile = @path + 'upload.ftp'

--FTP地址
set @batchcmd = '@echo open 192.168.1.150>' + @ftpfile
exec master.dbo.xp_cmdshell @batchcmd

--用户名
set @batchcmd = '@echo user testuser>>' + @ftpfile
exec master.dbo.xp_cmdshell @batchcmd

--密码 >>字符应紧接密码后面,否则空格会被当作密码
set @batchcmd = '@echo myftppwd>>' + @ftpfile
exec master.dbo.xp_cmdshell @batchcmd

set @batchcmd = '@echo prompt off >>' + @ftpfile
exec master.dbo.xp_cmdshell @batchcmd

set @batchcmd = '@echo lcd ' + @path + '. >>' + @ftpfile
exec master.dbo.xp_cmdshell @batchcmd

set @batchcmd = '@echo bin >>' + @ftpfile
exec master.dbo.xp_cmdshell @batchcmd

set @batchcmd = '@echo put ' + @filename + ' >>' + @ftpfile
exec master.dbo.xp_cmdshell @batchcmd

set @batchcmd = '@echo bye >>' + @ftpfile
exec master.dbo.xp_cmdshell @batchcmd

--开始上传
set @batchcmd = 'ftp -n -s:' + @ftpfile
exec master.dbo.xp_cmdshell @batchcmd

--删除upload.ftp
set @batchcmd = 'del /Q ' + @ftpfile
exec master.dbo.xp_cmdshell @batchcmd
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值