В моем проекте я хочу написать скрипт, чтобы проверить, доступно ли для каждого устройства в моей сети/доступно. У меня есть метод, называемый pingtest и он работает на данный момент ..Ruby - проверка состояния ping featback с ssh, backtick через ssh?
def pingtest(destination)
system("ping -n 2 #{destination}")
if $? == 0 #checking status of the backtick
puts "\n Ping was successful!"
else
close("Device is unreachable. Check the config.txt for the correct IPs.")
#close() is just print & exit..
end
end
Теперь я хотел свистеть через SSH сессии с другим устройством в моей сети:
#--------------------------------
require 'net/ssh'
Net::SSH.start(@ip, @user, :password => @password)
#--------------------------------
@ssh = Ssh.new(@config)
@ssh.cmd("ping -c 3 #{@IP}")
пинг работает отлично, но как могу ли я использовать мою идею возврата назад, чтобы определить, было ли это успешным или нет?
Я думал об использовании соединения SFTP ..
"пинг -c 3 # {@} IP => tmpfile.txt" => скачать => проверить/сравнить => удалить
(или что-то в этом роде), чтобы проверить, было ли это правильно, но im not statusfied с этим. Есть ли возможность проверить статус успеха, как раньше?
я тоже пытался что-то вроде этого ..
result = @ssh.cmd("ping -c 3 #{@IP}")
if result.success? == 0 # and so on..
Я обучение рубина запущен при несколько дней назад, так что им новичок с нетерпением ждет ваших идеи, чтобы помочь мне с этой проблемой.
'«блок в (MyMethod)»не определено локальная переменная или метод«ответ»для #' Похоже есть что-то отсутствует. Я пробовал несколько вещей, но теперь я думаю, что у меня просто нет метода ответа. Нужно ли мне реализовать что-то еще? –
Drayke
Ах да, извините, переименовали некоторые переменные и забыли. Я исправил это. –