我有伦德克执行远程脚本,在 Python 中通常使用打印语句返回输出,例如:
$ python mytest.py
PASS: Condition 1 passed
PASS: Condition 2 passed
PASS: and so on...
但是,当我通过 Rundeck 运行此程序时,它不会显示print
与上面相同的生成输出。在 Rundeck 最详细的调试输出模式下,我只收到以下内容:
06:31:12 Permanently added 'myremotenode.com' (RSA) to the list of known hosts.
06:31:12 SSH_MSG_NEWKEYS sent
06:31:12 SSH_MSG_NEWKEYS received
06:31:12 SSH_MSG_SERVICE_REQUEST sent
06:31:13 SSH_MSG_SERVICE_ACCEPT received
06:31:13 Authentications that can continue: publickey,password,keyboard-interactive
06:31:13 Next authentication method: publickey
06:31:13 Authentication succeeded (publickey).
06:31:13 /cygdrive/c/Program Files (x86)/Mozil...
06:32:06 Adding reference: ant.PropertyHelper
06:32:06 Setting project property: sshexec.output -> /cygdrive/c/Prog...
我知道远程脚本实际上正在像往常一样执行,因为我正在收到由约 30 分钟长的脚本生成的其他电子邮件。
显然,我不想等待 30 分钟才能看到 python 脚本中每个打印语句的结果。
我怎样才能在 Rundeck 中直接获得与在 bash shell 中相同级别的输出?
答案1
这个问题python 输出缓冲帮我解决了。
将标志添加-u
到 python 执行行可以解决任何重定向 Rundeck 输出的问题。