echo cd $DEST >$DIR/$SFTP_CMD
echo put $FTP_FILE_NAME "$FTP_FILE_NAME(+1)" >> $DIR/$SFTP_CMD
echo quit >> $DIR/$SFTP_CMD
sftp -b $DIR/$SFTP_CMD $USER@$SERVER >> $LOG
通常在成功的 SFTP 上,“上传文件到路径/文件”被打印到标准输出(在这种情况下是日志)。它停止这样做了。 FTP 仍在成功,但它没有打印“正在上传。* 消息到标准输出”。我不知道会发生什么变化会导致这种变化。有没有人遇到过这个问题?
此脚本从 Informatica - 命令任务触发。唯一发生变化的是此工作流已迁移到 informatica 10。
最佳答案
如果使用 -q
标志或 -b
运行,当前版本的 OpenSSH sftp
实用程序不会打印该消息标志(暗示 -q
)。
我手头有一些旧版本 OpenSSH 的源代码。在版本 6.0 和 6.6 之间的某个时间进行了抑制该消息的更改。您的 Informatica 更新可能还涉及对 OpenSSH 软件的更新,并且您现在运行的是更新版本的 sftp
实用程序。
想到的唯一解决方案是:
- 没有那个消息就过去吧。
- 避免使用
-b
或-q
运行sftp
。 - 为此目的恢复到足够旧的
sftp
实用程序副本。 - 下载 OpenSSH 源代码并构建您自己的(可能经过修改的)
sftp
实用程序版本。 - 使用您选择的语言编写您自己的 sftp 客户端。大多数现代编程语言都有某种可用的 SSH/SFTP 客户端库。
关于linux - SFTP 停止打印消息 "Uploading <file> to/path/to/file",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50642212/