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

本文介绍如何使用SQL Server自动备份数据库并压缩文件后,通过FTP命令集实现自动上传到指定FTP服务器的过程。利用T-SQL代码生成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
 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值