如何解决lftp,stdout,stderr和SAP exec_protocol
我们有Linux脚本可以通过预共享密钥进行SFTP,但是最近供应商需要密钥和密码,我想它类似于两因素身份验证。因此,供应商使用预共享密钥进行身份验证,然后提示输入密码。在输入密码之前,仅会进行部分身份验证。因此,我的标准脚本无法正常工作。为了解决这个问题,我发现lftp
可以在脚本中传递密码,并解决了脚本放置和获取文件的问题。这是我的脚本:
#!/bin/sh
# ###########################
# Parameters
# $1 Source Directory
# $2 Source File
# $3 Target IP
# $4 Target File
# $5 Target Directory
# $6 Mode (binary or ascii)
# $7 User
# $8 Pwd
# ###########################
lftp sftp://$7:$8@$3 -e "cd $5; put $1$2; bye"
此脚本是通过调用函数SXPG_COMMAND_EXECUTE
从SAP abap程序中调用的。 Shell脚本的返回信息通常捕获在返回参数EXEC_PROTOCOL
中。所有其他bash脚本都可以正常工作,但是与lftp
一起使用时,stdout不会提供任何帮助。我们确实收到错误,所以我假设它正在捕获stderr。知道为什么会这样吗?
解决方法
它与SAP或ABAP均无关。查看here上的帖子ServerFault.com。
该命令可能正在缓冲其输出,请在此处查看已接受的答案,然后尝试对其进行缓冲。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。