f = File.open("/test/serverlist.txt", "r")
list = f.readlines
list.each do|servers|
File.open('/test/results.txt','w') do |b|
servers.each do |p|
r = `ping -n 1 #{p}`
b.puts r
end
end
它读取serverlist
文件,并返回一个字符串。 serverlist
文件包含以下IP地址:
192.168.150.254
192.168.120.2
答案 0 :(得分:2)
您是否希望从文件中读取每一行,然后执行此类操作。
fout = File.open('/test/results.txt','w')
File.open("/test/serverlist.txt", "r").each_line do |server|
server.chomp!
r = `ping -n 1 #{server}`
fout.puts r
end
答案 1 :(得分:1)
我认为你不需要迭代服务器行本身,并且添加了一些样式mod并更改了ping(1)参数,我建议......
open 'serverlist.txt', 'r' do |f|
open '/tmp/results.txt', 'w' do |b|
f.readlines.each do |server|
b.puts `ping -c 1 -t 1 #{server}`
end
end
end
答案 2 :(得分:0)
只需使用b.write代替b.puts
答案 3 :(得分:0)
如果您使用的是Linux,那么您可以选择
File.open("serverlist.txt").each { |addy| `echo "#{`ping -c 1 #{addy}`}" >> result.txt` }
并完成它
好吧..也许可以添加`echo "# server-availability" > result.txt`
在上面一行之前,每次调用此文件时都会重置文件