我使用Rundeck通过SSH执行程序运行远程作业。我运行的一些作业记录到主机上的特定文件,而不是STDOUT,我没有能力更改它。
有没有办法告诉Rundeck在写入这些文件时使用tail -f
之类的内容来读取这些文件,并将那里出现的内容视为作业输出?
添加tail -f
本身作为一个步骤是行不通的,因为它永远不会终止。
如果需要,一个' hacky'解决方案会做(比如为复制和阅读日志添加额外的工作步骤)但理想情况下我希望它更整洁。所以,如果你能给我一些指导如何构建一个插件,将文件名作为参数并从那里读取输出,那就更好了。
答案 0 :(得分:1)
如果您只想在STDOUT上阅读和打印文件,那么只需使用此内联脚本作为工作流程中的附加步骤。
#!/usr/bin/python
import os,sys
file_name=sys.argv[1]
if os.path.isfile(file_name):
with open(file_name) as file:
for line in file:
print line
else:
print 'file doesnt exists'
将文件名作为参数