我开始为Vagrant编写一个插件,它将添加一个命令。在Command#execute中我需要捕获:ssh_run输出。现在输出直接到标准输出。命令中的小测试片段:
with_target_vms(@argv, single_target: true) do |vm|
vm.action(:ssh_run, ssh_run_command: 'tail -50 /var/log/boot.log')
end
有谁知道怎么做?也许vm.action本身不是正确的方法?
提前多多感谢
塞巴斯蒂安
答案 0 :(得分:1)
那很快。 @effhaa告诉我另一个频道。
with_target_vms(@argv, single_target: true) do |vm|
result = []
vm.communicate.sudo('tail -50 /var/log/boot.log') do |type, data|
if type == :stdout
result = data.split(/[\r\n]+/)
end
end
end