WinSCP PUT命令错误输出“未知开关'rawtransfersettings'”

问题描述 投票:1回答:1

我们有一个位于Windows服务器的作业,该作业负责通过WinSCP实用程序将文件发送到Linux机器。 我们观察到文件传输过程由于每隔一天平均连接错误而失败。

我们在日志中收到以下错误消息:

上传文件'xxx_20190103031754.csv'成功,但在设置权限和/或时间戳时发生错误。 如果问题仍然存在,请关闭设置权限或保留时间戳。 或者,您可以启用“忽略权限错误”选项。一般故障(服务器应提供错误说明)。

为了解决这个问题,我用Google搜索为-rawtransfersettings命令设置put

open sftp://[email protected]/ -hostkey="ssh-rsa 1024 xx:xx:xx:xx:xx:xx" -timeout=60 -rawsettings SendBuf=0 SshSimple=1

put -rawtransfersettings IgnorePermErrors=0 PreserveTimeDirs=0 "E:\Final\XXX_ASSIGNMENT_20190416200819.csv" "/<Linux Box Folder Name>/" 

但我收到了以下错误

使用预先输入的密码进行身份验证。 认证。 开始会议...... 会议开始了。 活动会话:[1] [email protected] 未知的开关'rawtransfersettings'。

command-line sftp winscp
1个回答
0
投票

-rawtransfersettings switch仅受最新的WinSCP 5.15支持。您可能正在使用较旧版本的WinSCP。

此外,如果你的目标是启用"Ignore permission errors",你需要IgnorePermErrors=10是默认值)。

附注:PreserveTimeDirs与你的问题无关,默认情况下是0。所以你可以删除它。双斜线是可疑的,你应该只使用一个。

这应该做:

put -rawtransfersettings IgnorePermErrors=1 "E:\Final\XXX_ASSIGNMENT_20190416200819.csv" "/"

但是,如果您的服务器实际上不支持保留时间戳,那么您应该使用-nopreversetime开关。见documentation for the error message

使用scripting时,将-nopreservetime-nopermissions开关添加到put command

© www.soinside.com 2019 - 2024. All rights reserved.