tze*_*zee 6 sftp ssis winscp sql-server-data-tools
我已经阅读了很多不同的论坛,但似乎不能让我的工作.我需要使用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
Run Code Online (Sandbox Code Playgroud)
在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
我如何在命令行中测试它,我做错了什么?
你并没有真正向我们解释什么(如果有的话)出了问题。
一般来说,WinSCP 常见问题解答中涵盖了此类问题。我的脚本在手动执行时工作正常,但在由 Windows Scheduler、SSIS 或其他自动化服务运行时失败或挂起。我究竟做错了什么?
另请参阅 WinSCP 文章SSIS/SSDT 的 SFTP 任务。
不过,更具体地说,存在三个明确的问题,如下所述。
您已在交互式 Windows 会话中创建了 WinSCP 存储站点。默认情况下,WinSCP 将站点信息存储到 Windows 注册表的 HKCU 配置单元中。您的 SSIS 会话无法访问该配置单元。
理想情况下,您应该创建一个独立的脚本,该脚本不依赖于存储的配置。这特别意味着您的open命令应包含凭据和主机密钥指纹,例如:
open sftp://username:password@TS_NEW.com -hostkey=...
Run Code Online (Sandbox Code Playgroud)
WinSCP GUI 可以为您生成这样的脚本。
另一个问题是您的cd命令实际上应该是lcd,并且路径必须用引号引起来,因为它包含空格。
lcd "C:\Users\zaccheut\Documents\Analytics Project 2018\ThoughtSpot\SSIS File"
Run Code Online (Sandbox Code Playgroud)
同样,WinSCP 参数中的脚本路径必须用引号引起来,因为它包含空格:
/script="C:\Users\zaccheut\Documents\Visual Studio 2012\Projects\Skynet Refreshes\Skynet Refreshes\local2remote.txt"
Run Code Online (Sandbox Code Playgroud)
您还应该向 WinSCP 参数添加/log开关以启用会话日志记录。这将对您的调试有很大帮助。生成的脚本(上面)也表明了这一点。
| 归档时间: |
|
| 查看次数: |
1409 次 |
| 最近记录: |