0

我开始为 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 本身不是正确的方法?

非常感谢提前

塞巴斯蒂安

4

1 回答 1

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
于 2016-02-10T11:32:54.290 回答