I've created a program that will search our work server where Ghostscripts occur. How it accomplishes this is by first ssh
ing to the server specified, running a bash command to search the server for Ghostscripts caused by our guy that uses them, most frequently. If it finds one, it e-mails somebody on my team. It will also e-mail if it doesn't find one.
I'm curious to know if there are other ways I can do this specific task. Better syntax, etc..
#!/local/usr/bin/ruby
require 'rubygems'
require '<mailgem>'
require 'etc'
require 'net/ssh'
class GhostScript
attr_accessor :host, :usr, :pass
def initialize(host, usr, pass)
@host = host
@usr = usr
@pass = pass
end
def script_search
ssh = Net::SSH.start(host, usr, :password => pass)
res = ssh.exec!('ps -u <user>|grep gs')
if res == nil
MailGem::Mail.new do |m|
m.to = '<email-address>'
m.subject = 'GhostScript not found'
m.body = "GS not found on server: #{host}"
end.send
else
alert(res)
end
end
def alert(res)
MailGem::Mail.new do |m|
m.to = '<email-address>'
m.subject = 'GhostScript found'
m.body = "GS script found on server: #{host}",
"Results of search: #{res}"
end.send
end
end
check = GhostScript.new('<server>', Etc.getlogin, nil)
check.script_search
res
always a (possibly empty) string? \$\endgroup\$nil
, an empty string, or the command. For some reasonnil
always works for me, so I just use it because it's easy. \$\endgroup\$