我有一种情况,因为我必须登录到远程系统并获取它们的硬件信息。 我登录到他们的系统我已经使用ssh为此我使用net-ssh gem。 这里是我的代码,我登录和查看信息在ruby中使用net :: ssh使用sudo命令获取远程系统的信息
Net::SSH.start('host','user', :password => 'xxxxxx') do |ssh|
ssh.exec!("echo 'xxxxxx' | sudo -S dmidecode -s system-serial-number")
end
为得到我已经使用sudo -S dmidecode -s system-serial-number
命令 它是作为密码用户1.0.0给人以密码输出为用户信息 我如何删除该消息?
我提到这个link但我也实现了它,但它会花费很多时间来加载他们是如何做到这一点的他们的任何其他方式?
result = nil
session.exec!("sudo -S dmidecode -s system-serial-number") do |channel, stream, data|
if data =~ /^\[sudo\] password for user:/
channel.send_data 'your_sudo_password'
else
result << data
end
result
d
感谢快速反应。但他们是数百个系统,我们必须登录并获取他们的系统信息。我无法更改他们的文件。 – r15