【问题标题】:Status Code 3 at the end of WinSCP SFTP uploadWinSCP SFTP 上传结束时的状态码 3
【发布时间】:2022-01-07 19:19:31
【问题描述】:

我有一个 Java 服务器技术(特别是 Inductive Automation 的 Ignition),它调用一个批处理文件,该批处理文件旨在使用 WinSCP 在一夜之间将一些文本文件传输给我们的客户。它不工作,我不知道为什么。

这是批处理文件 - 实际信息已更改,因此任何拼写错误均不代表实际批处理文件。请注意

set sftpPathData=C:\SFTP\Up\Data*.txt.gpg
echo sftpPathData
FOR /F "delims=|" %%I IN ('DIR %sftpPathData% /B /O:D') DO SET NewestDataFile=%%I
echo NewestDataFile is %NewestDataFile%
set filePathData=C:\SFTP\Up\%NewestDataFile%
"C:\Program Files (x86)\WinSCP\WinSCP.exe" SiteName /log=c:\temp\winscp2.log /loglevel=* /privatekey=C:\Keys\key_nopassphrase.ppk /command "open sftp://User:password.url.net:6055/" "cd firstdirectory\secondDirectory\"  "put %filePathData%" "close"
exit /b

我通过 Python(技术上是 Jython)子进程调用来调用它并记录 stderr,但我没有看到任何问题 - 过去一个月我的日志中没有任何关于 stderr 的内容。

在 WinSCP 日志中,这就是我所看到的——我截断了很多内容,但显示了我认为相关的内容,它登录并尝试复制文件,但我看到 Status code: 3,而之前它正在工作时是Status code: 0

今天早上的日志-

. 2022-01-07 04:10:02.120 Copying "C:\SFTP\Up\Data01072020.txt.gpg" to remote directory started.
. 2022-01-07 04:10:02.120 Binary transfer mode selected.
. 2022-01-07 04:10:02.120 Opening remote file.
> 2022-01-07 04:10:02.120 Type: SSH_FXP_OPEN, Size: 76, Number: 771
< 2022-01-07 04:10:02.520 Type: SSH_FXP_HANDLE, Size: 10, Number: 771
> 2022-01-07 04:10:02.521 Type: SSH_FXP_WRITE, Size: 4118, Number: 1286
. 2022-01-07 04:10:02.523 16 skipped SSH_FXP_WRITE, SSH_FXP_READ, SSH_FXP_DATA and SSH_FXP_STATUS packets.
> 2022-01-07 04:10:02.523 Type: SSH_FXP_CLOSE, Size: 10, Number: 5636
> 2022-01-07 04:10:02.523 Type: SSH_FXP_SETSTAT, Size: 72, Number: 1033
< 2022-01-07 04:10:02.547 Type: SSH_FXP_STATUS, Size: 49, Number: 1286
< 2022-01-07 04:10:02.561 Type: SSH_FXP_STATUS, Size: 49, Number: 1542
< 2022-01-07 04:10:02.561 Type: SSH_FXP_STATUS, Size: 49, Number: 1798
< 2022-01-07 04:10:02.564 Type: SSH_FXP_STATUS, Size: 49, Number: 2054
< 2022-01-07 04:10:02.565 Type: SSH_FXP_STATUS, Size: 49, Number: 2310
< 2022-01-07 04:10:02.579 Type: SSH_FXP_STATUS, Size: 49, Number: 2566
< 2022-01-07 04:10:02.583 Type: SSH_FXP_STATUS, Size: 49, Number: 2822
< 2022-01-07 04:10:02.586 Type: SSH_FXP_STATUS, Size: 49, Number: 3078
< 2022-01-07 04:10:02.587 Type: SSH_FXP_STATUS, Size: 49, Number: 3334
< 2022-01-07 04:10:02.588 Type: SSH_FXP_STATUS, Size: 49, Number: 3590
< 2022-01-07 04:10:02.588 Type: SSH_FXP_STATUS, Size: 49, Number: 3846
< 2022-01-07 04:10:02.588 Type: SSH_FXP_STATUS, Size: 49, Number: 4102
< 2022-01-07 04:10:02.595 Type: SSH_FXP_STATUS, Size: 49, Number: 4358
< 2022-01-07 04:10:02.601 Type: SSH_FXP_STATUS, Size: 49, Number: 4614
< 2022-01-07 04:10:02.601 Type: SSH_FXP_STATUS, Size: 49, Number: 4870
< 2022-01-07 04:10:02.602 Type: SSH_FXP_STATUS, Size: 49, Number: 5126
< 2022-01-07 04:10:02.602 Type: SSH_FXP_STATUS, Size: 49, Number: 5382
< 2022-01-07 04:10:02.772 Type: SSH_FXP_STATUS, Size: 40, Number: 5636
< 2022-01-07 04:10:02.772 Status code: 0
. 2022-01-07 04:10:02.772 Preserving timestamp [2022-01-07T09:00:01.000Z]
< 2022-01-07 04:10:02.807 Type: SSH_FXP_STATUS, Size: 176, Number: 1033
< 2022-01-07 04:10:02.807 Status code: 3
. 2022-01-07 04:10:02.807 Transfer done: 'C:\SFTP\Up\Data01072020.txt.gpg' [65702]
> 2022-01-07 04:10:02.808 Script: close
. 2022-01-07 04:10:02.808 Closing connection.
. 2022-01-07 04:10:02.808 Sending special code: 12
. 2022-01-07 04:10:02.808 Sent EOF message

当这条线工作时 -

< 2022-01-07 04:10:02.807 Status code: 3

会显示为

< 2022-01-07 04:10:02.807 Status code: 0

非常感谢任何能够为我指明正确方向的帮助或能力。我在这里看到https://winscp.net/eng/docs/sftp_codes 3 的意思是

权限被拒绝 用户没有足够的权限来执行操作。

作为调用批处理文件的 Windows 服务运行的 Java 服务器技术以管理员帐户登录。

直接使用 WinSCP GUI,我可以将文件拖放到适当的远程目录。

我很茫然。任何有关如何解决此问题的信息或使用 WinSCP 执行此操作的不同方法(每天一次通过 WinSCP 将具有特定扩展名的特定目录中的最新两个文件发送到远程服务器)将不胜感激。

【问题讨论】:

    标签: batch-file sftp winscp


    【解决方案1】:

    对我来说,它看起来像这个问题:
    Why is uploaded file not showing in a remote directory or showing with a different name?

    代码 3 很可能是尝试更新刚刚上传的同时被删除/移动的文件的时间戳失败。为什么它有时成功有时失败可能只是时间问题。有时 WinSCP 可能会在文件被删除/移动之前更新时间戳,有时不会。您可能希望使用 -nopreservetime switch of the put command 禁用时间戳更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-11
      • 2019-02-05
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多