Проблема с чтением файла - PullRequest
0 голосов
/ 03 мая 2011
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

Ответы [ 4 ]

2 голосов
/ 03 мая 2011

Вы хотите прочитать каждую строку из файла, а затем сделать что-то вроде этого.

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 голос
/ 03 мая 2011

Не думаю, что вам нужно будет перебирать саму строку сервера, и с добавлением нескольких модов стилей и изменением аргументов 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
0 голосов
/ 03 мая 2011

если вы используете Linux, вы можете просто перейти на

File.open("serverlist.txt").each { |addy| `echo "#{`ping -c 1 #{addy}`}" >> result.txt` }

и покончим с этим

ну .. может быть добавим

`echo "# server-availability" > result.txt`

перед строкой выше, поэтому файл сбрасывается при каждом вызове этого

0 голосов
/ 03 мая 2011

Просто используйте b.write вместо b.puts

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...