Sql 如何使用SSIS将文件夹从FTP复制到本地驱动器?
我们每天都有一个电话录音,通过FTP发布。作为备份,我想每天将这些录音从FTP复制到本地驱动器。是否可以将整个文件夹作为一个整体复制,然后将文件夹粘贴到我的本地驱动器并重命名Sql 如何使用SSIS将文件夹从FTP复制到本地驱动器?,sql,ssis,ssis-2012,ssis-2008,Sql,Ssis,Ssis 2012,Ssis 2008,我们每天都有一个电话录音,通过FTP发布。作为备份,我想每天将这些录音从FTP复制到本地驱动器。是否可以将整个文件夹作为一个整体复制,然后将文件夹粘贴到我的本地驱动器并重命名 提前感谢是-您将使用文件系统任务并将操作设置为复制目录(在Microsoft使用Win 95更改之前,文件夹称为目录)。您可以在选择目标文件夹的目标连接中更改名称。如果需要,可以使用表达式添加日期 如果您需要,这里有一些很好的分步说明,因为Microsoft提供了模糊的描述,没有示例: 2008年的投标有一个FTP任务,
提前感谢是-您将使用文件系统任务并将操作设置为复制目录(在Microsoft使用Win 95更改之前,文件夹称为目录)。您可以在选择目标文件夹的目标连接中更改名称。如果需要,可以使用表达式添加日期 如果您需要,这里有一些很好的分步说明,因为Microsoft提供了模糊的描述,没有示例:
2008年的投标有一个FTP任务,但我从未使用过它。也有几个党的SFTP和类似的,但我不使用这些 [编辑:由于上述链接指向CodePlex,它正在关闭,我将提供更多详细信息。第一个链接指向名为“SSIS SFTP任务控制流组件”的项目,第二个链接指向名为“SSIS扩展-SFTP任务、PGP任务、Zip任务”的项目。截至2017年6月,这些项目似乎没有明显的重新托管。] 我倾向于使用。这当然是微软最不常用的方法,但是,IMX,它更简单。这具有适用于FTP、FTPS和SFTP的优点。它的缺点是您将密码存储为纯文本。您可以使用WinSCP的会话管理器将其存储在注册表中,但我相信这是一个每个用户的注册表,当您使用SSIS代理帐户使用SQL代理时,它可能会带来很多乐趣 使用要使用的命令创建脚本文件。确保指定
选项批处理中止
和选项确认关闭
。您可能还想指定选项failonnomatch
,但我自己还没有测试过这个选项,因为我仍然使用不支持该选项的稍旧版本
我的看起来像这样:
# Set batch settings
option batch abort
option confirm off
# Connect
open sftp://user:password@sftp.server.com -hostkey="ssh-rsa 2048 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff"
# Change remote and local directories
lcd "M:\SSIS\eSchoolPlus to Clever\Output"
# Transfer files
put -nopreservetime -nopermissions -transfer=ascii file1.csv
put -nopreservetime -nopermissions -transfer=ascii file2.csv
put -nopreservetime -nopermissions -transfer=ascii file3.csv
put -nopreservetime -nopermissions -transfer=ascii file4.csv
put -nopreservetime -nopermissions -transfer=ascii file5.csv
close
exit
put
上的选项取决于远程服务器如何处理我碰巧抓取的脚本<代码>获取的工作原理大致相同
然后使用执行流程任务。可执行文件是C:\ProgramFiles(x86)\WinSCP\WinSCP.exe
,我使用的参数是:
-console -script="X:\Path\To\Script\WinSCPScript.txt" -xmllog="X:\Path\To\Script\WinSCP-!S-!Y-!M-!D-!T.log" -xmlgroups`
这将创建一个仅包含WinSCP信息的每日日志。XML日志比旧的日志格式IMO更具可读性和实用性,IMO包含大量调试信息
您也可以选择将与执行脚本任务一起使用,但这显然需要付出更多的努力 文件系统任务是否连接到FTP?我使用了FTP任务,但它没有移动或复制目录的操作。Duh-否。我以为您可以直接访问FTP源。您可以复制FTP任务中的所有文件,远程路径为/FolderName/**