L
lance.sanchez
ok, I have a server with a dozen systems attached to it. there are
commands that I need to run on each system one at a time. i can
connect to each system with the admin script, i can launch basic
commands i can even launch the script i need to but when that script
tries to launch the partimage application to backup the windows
partitions (this is all being done from linux) it doesn't, i don't get
any good errors it just dies closes the connection an moves onto the
next system.
==admin.rb==
#!/usr/bin/ruby
require 'net/ssh'
Username='root'
Password='{plain_text_password}'
Hosts = (101..112).collect {|x| "192.168.0.#{x}"}
def classroom_pc(host, command)
Net::SSH.start( host, Username, Password) do |session|
session.open_channel do |channel|
channel.on_success do
puts "Connected to #{host}"
end
channel.on_close do
puts "Connection Closed to #{host}"
end
#channel.on_data do |ch, data|
# puts "\trecieved #{data}"
# puts "\tfrom #{host}"
#end
channel.send_request "shell", nil, true
channel.send_data "#{command}\n"
channel.send_data "exit\n"
end
session.loop
end
end
if $0 == __FILE__
Hosts.length.times do |i|
classroom_pc(Hosts, "/mnt/backup/partimage.rb
save")
end
end
==/mnt/backup/partimage.rb==
#!/usr/bin/ruby
Win_drive = "/dev/hda1"
Location = "/mnt/backup/classroom/"
File_type = "partimag.gz"
def help_message
puts "Usage:"
puts "\tsave to save the image"
puts "\tload to restore an image"
puts "\thelp prints this message"
end
def hostname
`hostname`.chomp
end
def save_image
system("rm #{Location}#{hostname}*")
system("partimage -odb -f3 -z1 save #{Win_drive} \
#{Location}#{hostname}.#{File_type}")
end
def load_image
system("partimage -eb -f3 restore #{Win_drive} \
#{Location}#{hostname}.#{File_type}.000")
end
if $0 == __FILE__
unless ARGV.length == 1
help_message
end
if ARGV.length == 1
help_message if ARGV[0].downcase == "help"
save_image if ARGV[0].downcase == "save"
load_image if ARGV[0].downcase == "load"
end
end
commands that I need to run on each system one at a time. i can
connect to each system with the admin script, i can launch basic
commands i can even launch the script i need to but when that script
tries to launch the partimage application to backup the windows
partitions (this is all being done from linux) it doesn't, i don't get
any good errors it just dies closes the connection an moves onto the
next system.
==admin.rb==
#!/usr/bin/ruby
require 'net/ssh'
Username='root'
Password='{plain_text_password}'
Hosts = (101..112).collect {|x| "192.168.0.#{x}"}
def classroom_pc(host, command)
Net::SSH.start( host, Username, Password) do |session|
session.open_channel do |channel|
channel.on_success do
puts "Connected to #{host}"
end
channel.on_close do
puts "Connection Closed to #{host}"
end
#channel.on_data do |ch, data|
# puts "\trecieved #{data}"
# puts "\tfrom #{host}"
#end
channel.send_request "shell", nil, true
channel.send_data "#{command}\n"
channel.send_data "exit\n"
end
session.loop
end
end
if $0 == __FILE__
Hosts.length.times do |i|
classroom_pc(Hosts, "/mnt/backup/partimage.rb
save")
end
end
==/mnt/backup/partimage.rb==
#!/usr/bin/ruby
Win_drive = "/dev/hda1"
Location = "/mnt/backup/classroom/"
File_type = "partimag.gz"
def help_message
puts "Usage:"
puts "\tsave to save the image"
puts "\tload to restore an image"
puts "\thelp prints this message"
end
def hostname
`hostname`.chomp
end
def save_image
system("rm #{Location}#{hostname}*")
system("partimage -odb -f3 -z1 save #{Win_drive} \
#{Location}#{hostname}.#{File_type}")
end
def load_image
system("partimage -eb -f3 restore #{Win_drive} \
#{Location}#{hostname}.#{File_type}.000")
end
if $0 == __FILE__
unless ARGV.length == 1
help_message
end
if ARGV.length == 1
help_message if ARGV[0].downcase == "help"
save_image if ARGV[0].downcase == "save"
load_image if ARGV[0].downcase == "load"
end
end