我已经阅读了很多不同的论坛,但似乎无法让我的工作。我需要使用SSIS将文件从本地计算机传输到SFTP服务器。以下是我已经做过的事情:
TS_NEW)中创建保存的连接WinSCP.exe和WinSCP.com复制到SSIS项目文件夹option batch on
option confirm off
open sftp://TS_NEW.com
cd C:\Users\zaccheut\Documents\Analytics Project 2018\ThoughtSpot\SSIS File
option transfer binary
put FCT_DC_MONTH.csv /export/xvdb1/skynet/File_Test
exit在SSIS中的我的执行过程任务编辑器有以下内容:
C:\Users\zaccheut\Documents\Visual Studio 2012\Projects\Skynet Refreshes\Skynet Refreshes\WinSCP.com/script=C:\Users\zaccheut\Documents\Visual Studio 2012\Projects\Skynet Refreshes\Skynet Refreshes\local2remote.txt如何在命令行中测试这一点,我做错了什么?
发布于 2018-09-24 15:18:55
你没有真正解释(如果有的话)出了什么问题。
通常,类似的问题在WinSCP FAQ 我的脚本在手动执行时运行良好,但在Windows Scheduler、SSIS或其他自动化服务运行时会失败或挂起。我做错了什么?中都有介绍。
另见WinSCP文章SSIS/SSDT的SFTP任务。
不过,更具体而言,下面有三个明确的问题。
您已经在交互式Windows会话中创建了一个WinSCP存储站点。默认情况下,WinSCP将站点信息存储到Windows注册表的HKCU蜂巢中。你的SSIS会话不能访问那个蜂巢。
理想情况下,您应该创建一个独立的脚本,它不依赖于存储的配置。这尤其意味着您的命令应该包含凭据和主机密钥指纹,例如:
open sftp://username:password@TS_NEW.com -hostkey=...另一个问题是,您的cd命令实际上应该是lcd,路径必须用引号括起来,因为它包含空格。
lcd "C:\Users\zaccheut\Documents\Analytics Project 2018\ThoughtSpot\SSIS File"同样,WinSCP参数中的脚本路径必须用引号括起来,因为它包含空格:
/script="C:\Users\zaccheut\Documents\Visual Studio 2012\Projects\Skynet Refreshes\Skynet Refreshes\local2remote.txt"还应该将交换机添加到WinSCP参数中,以启用会话日志记录。这将对您的调试大有帮助。生成的脚本(上面)也显示了这一点。
https://stackoverflow.com/questions/52482021
复制相似问题