lftp、stdout、stderr 和 SAP exec_protocol
lftp,stdout, stderr and SAP exec_protocol
我们有 linux 脚本通过预共享密钥执行 SFTP,但最近供应商要求密钥和密码,我想这类似于双因素身份验证。因此供应商使用预共享密钥进行身份验证,然后提示输入密码。在输入密码之前,您只是部分通过了身份验证。所以我的标准脚本不起作用。为了解决这个问题,我发现 lftp
可以在脚本中传递密码并解决脚本放置和获取文件的问题。这是我的脚本:
#!/bin/sh
# ###########################
# Parameters
# Source Directory
# Source File
# Target IP
# Target File
# Target Directory
# Mode (binary or ascii)
# User
# Pwd
# ###########################
lftp sftp://:@ -e "cd ; put ; bye"
此脚本是通过调用函数 SXPG_COMMAND_EXECUTE
从 SAP abap 程序调用的。来自 shell 脚本的 return 信息通常在 return 参数 EXEC_PROTOCOL
中捕获。所有其他 bash 脚本都能正常工作,但对于 lftp
,我们从标准输出中什么也得不到。我们确实遇到了错误,所以我假设它正在捕获 stderr。知道这是为什么吗?
它与 SAP 和 ABAP 都无关。看看 post here on the ServerFault.com.
该命令可能正在缓冲其输出,查看已接受的答案并尝试取消缓冲。
我们有 linux 脚本通过预共享密钥执行 SFTP,但最近供应商要求密钥和密码,我想这类似于双因素身份验证。因此供应商使用预共享密钥进行身份验证,然后提示输入密码。在输入密码之前,您只是部分通过了身份验证。所以我的标准脚本不起作用。为了解决这个问题,我发现 lftp
可以在脚本中传递密码并解决脚本放置和获取文件的问题。这是我的脚本:
#!/bin/sh
# ###########################
# Parameters
# Source Directory
# Source File
# Target IP
# Target File
# Target Directory
# Mode (binary or ascii)
# User
# Pwd
# ###########################
lftp sftp://:@ -e "cd ; put ; bye"
此脚本是通过调用函数 SXPG_COMMAND_EXECUTE
从 SAP abap 程序调用的。来自 shell 脚本的 return 信息通常在 return 参数 EXEC_PROTOCOL
中捕获。所有其他 bash 脚本都能正常工作,但对于 lftp
,我们从标准输出中什么也得不到。我们确实遇到了错误,所以我假设它正在捕获 stderr。知道这是为什么吗?
它与 SAP 和 ABAP 都无关。看看 post here on the ServerFault.com.
该命令可能正在缓冲其输出,查看已接受的答案并尝试取消缓冲。