Bam Bam - 4 years ago 99
Ruby Question

Using ouput numbers to cancel hung printer jobs

I have a script that will check our servers for print jobs that are hung using

net/ssh
.

Now what I want to do is use the
job ID
that is output from the script (3rd column with all the numbers) and cancel the jobs (I know how I'm going to do the cancel) Is there a way, in Ruby, to use outputted digits as input?

Source:

#!/usr/local/bin/ruby

require 'rubygems'
require 'net/ssh'
require 'etc'
require 'adfitech/mail'

class PrintJobs

HOST = ARGV[0]
USERNAME = Etc.getlogin
PASSWORD = nil

def scan_for_jobs
check_jobs = Net::SSH.start(HOST, USERNAME, :password => PASSWORD) do |ssh|
cmd = "prt_jobs"
info = ssh.exec!(cmd)
res = info.split("\n").reject {|line| line.match(/\s+2016\s+/)}.join("\n")
puts res
print "Kill jobs: "
input = STDIN.gets.chomp.upcase
if input == "YES"
kill_jobs(check_jobs, res)
else
exit 1
end
end
end

def kill_jobs(check_jobs, res)
puts "Loading jobs in kill que.."
# <= Here output digits
end
end

test = PrintJobs.new
test.scan_for_jobs


output:

#3rd column with the digits is the job ID
laser26-828837 kaj 1042432 Fri 21 Aug 2015 03:59:35 PM CDT
laser26-828982 leb 446464 Fri 21 Aug 2015 04:52:20 PM CDT
laser26-828983 leb 1042432 Fri 21 Aug 2015 04:52:20 PM CDT
laser26-828986 leb 446464 Fri 21 Aug 2015 05:04:39 PM CDT
laser26-828987 leb 1042432 Fri 21 Aug 2015 05:04:39 PM CDT
laser26-828991 leb 446464 Fri 21 Aug 2015 05:15:08 PM CDT
laser26-828992 leb 1042432 Fri 21 Aug 2015 05:15:08 PM CDT
laser26-898419 kaj 430080 Wed 14 Oct 2015 02:01:34 PM CDT
laser26-898420 kaj 1042432 Wed 14 Oct 2015 02:01:34 PM CDT
laser26-898444 kaj 430080 Wed 14 Oct 2015 02:09:08 PM CDT
laser26-898445 kaj 1042432 Wed 14 Oct 2015 02:09:08 PM CDT
laser26-898526 kaj 446464 Wed 14 Oct 2015 02:50:45 PM CDT
laser26-898527 kaj 1042432 Wed 14 Oct 2015 02:50:45 PM CDT
laser26-898577 kaj 446464 Wed 14 Oct 2015 03:09:03 PM CDT
laser26-898578 kaj 1042432 Wed 14 Oct 2015 03:09:04 PM CDT
laser26-898583 kaj 430080 Wed 14 Oct 2015 03:13:27 PM CDT
laser26-898584 kaj 1042432 Wed 14 Oct 2015 03:13:27 PM CDT
laser26-898587 kaj 446464 Wed 14 Oct 2015 03:17:17 PM CDT
laser26-898588 kaj 1042432 Wed 14 Oct 2015 03:17:17 PM CDT
laser26-898596 kaj 446464 Wed 14 Oct 2015 03:25:40 PM CDT
laser26-898597 kaj 1042432 Wed 14 Oct 2015 03:25:40 PM CDT
laser26-898602 kaj 446464 Wed 14 Oct 2015 03:26:13 PM CDT
laser26-898603 kaj 1042432 Wed 14 Oct 2015 03:26:13 PM CDT
laser26-898617 kaj 430080 Wed 14 Oct 2015 03:31:27 PM CDT
laser26-898618 kaj 1042432 Wed 14 Oct 2015 03:31:27 PM CDT
laser26-903874 bja 446464 Tue 20 Oct 2015 09:18:34 AM CDT
laser26-903875 bja 1042432 Tue 20 Oct 2015 09:18:34 AM CDT
laser26-904044 kaj 430080 Tue 20 Oct 2015 10:11:32 AM CDT
laser26-904045 kaj 1042432 Tue 20 Oct 2015 10:11:32 AM CDT
laser26-904171 kaj 446464 Tue 20 Oct 2015 10:34:45 AM CDT
laser26-904172 kaj 1042432 Tue 20 Oct 2015 10:34:45 AM CDT
laser26-904368 bja 430080 Tue 20 Oct 2015 11:33:48 AM CDT
laser26-904369 bja 1042432 Tue 20 Oct 2015 11:33:48 AM CDT
laser26-904479 bja 446464 Tue 20 Oct 2015 12:06:10 PM CDT
laser26-904480 bja 1042432 Tue 20 Oct 2015 12:06:10 PM CDT
laser26-904495 bja 430080 Tue 20 Oct 2015 12:10:26 PM CDT
laser26-904496 bja 1042432 Tue 20 Oct 2015 12:10:26 PM CDT
laser26-966772 ksn 430080 Thu 03 Dec 2015 03:35:28 PM CST
laser26-966773 ksn 1042432 Thu 03 Dec 2015 03:35:28 PM CST
laser26-966861 ksn 446464 Thu 03 Dec 2015 03:50:00 PM CST
laser26-966862 ksn 1042432 Thu 03 Dec 2015 03:50:00 PM CST
laser26-966979 ksn 446464 Thu 03 Dec 2015 04:18:25 PM CST
laser26-966980 ksn 1042432 Thu 03 Dec 2015 04:18:25 PM CST
laser26-966989 ksn 430080 Thu 03 Dec 2015 04:23:05 PM CST
laser26-966990 ksn 1042432 Thu 03 Dec 2015 04:23:05 PM CST
laser32-829104 glt 187392 Sun 23 Aug 2015 07:22:16 PM CDT
laser35-797457 jss 572416 Wed 29 Jul 2015 02:59:20 PM CDT
laser35-806865 kjw 982016 Wed 05 Aug 2015 02:15:55 PM CDT
laser40-898540 rrw 715776 Wed 14 Oct 2015 02:51:30 PM CDT
laser40-898547 rrw 715776 Wed 14 Oct 2015 02:53:05 PM CDT
laser40-904373 rrw 2565120 Tue 20 Oct 2015 11:37:39 AM CDT
mailrm2-829117 lmb 356352 Mon 24 Aug 2015 06:20:59 AM CDT
pref_jet-797185 djl 871424 Wed 29 Jul 2015 01:46:38 PM CDT
pref_jet-797187 aqs 1104896 Wed 29 Jul 2015 01:46:57 PM CDT
pref_jet-829111 djl 117760 Mon 24 Aug 2015 05:38:54 AM CDT
pref_jet-829112 djl 117760 Mon 24 Aug 2015 05:41:05 AM CDT
team_d-797167 kld 144384 Wed 29 Jul 2015 01:39:29 PM CDT
team_d-797168 kld 145408 Wed 29 Jul 2015 01:39:39 PM CDT
team_d-797169 kld 144384 Wed 29 Jul 2015 01:39:48 PM CDT
team_d-797170 kld 145408 Wed 29 Jul 2015 01:39:59 PM CDT
team_d-797171 kld 144384 Wed 29 Jul 2015 01:40:10 PM CDT
team_d-797172 kld 144384 Wed 29 Jul 2015 01:40:23 PM CDT
team_d-797173 kld 144384 Wed 29 Jul 2015 01:40:31 PM CDT
team_d-797174 kld 144384 Wed 29 Jul 2015 01:40:41 PM CDT
team_d-797175 kld 144384 Wed 29 Jul 2015 01:40:50 PM CDT
team_d-797176 kld 144384 Wed 29 Jul 2015 01:41:00 PM CDT
team_d-797177 kld 144384 Wed 29 Jul 2015 01:41:08 PM CDT
team_d-797178 kld 144384 Wed 29 Jul 2015 01:41:16 PM CDT
team_d-797179 kld 144384 Wed 29 Jul 2015 01:41:25 PM CDT
team_d-797180 kld 145408 Wed 29 Jul 2015 01:41:37 PM CDT
team_d-797181 kld 145408 Wed 29 Jul 2015 01:41:45 PM CDT
team_d-797186 kld 144384 Wed 29 Jul 2015 01:46:40 PM CDT
team_d-829108 rdm 429056 Mon 24 Aug 2015 04:55:43 AM CDT
team_d-850252 kld 145408 Wed 09 Sep 2015 12:34:18 PM CDT
team_d-869247 kld 77824 Wed 23 Sep 2015 07:57:35 AM CDT
team_d-869248 kld 81920 Wed 23 Sep 2015 07:57:43 AM CDT
team_d-898621 kld 39936 Wed 14 Oct 2015 03:32:01 PM CDT
team_d-898622 kld 39936 Wed 14 Oct 2015 03:32:12 PM CDT
team_d-898633 kld 36864 Wed 14 Oct 2015 03:33:59 PM CDT
team_d-904046 kmt 16634880 Tue 20 Oct 2015 10:12:04 AM CDT
team_d-904497 kmt 5965824 Tue 20 Oct 2015 12:11:56 PM CDT
team_f-898550 rlr 1070080 Wed 14 Oct 2015 02:55:30 PM CDT
team_t-795252 tud 891904 Tue 28 Jul 2015 01:40:06 PM CDT
team_t-795255 tud 970752 Tue 28 Jul 2015 01:40:41 PM CDT
team_t-795256 tud 1033216 Tue 28 Jul 2015 01:40:55 PM CDT
team_t-795263 dlc 228352 Tue 28 Jul 2015 01:46:07 PM CDT
team_t-795264 alm 1280000 Tue 28 Jul 2015 01:46:30 PM CDT
team_t-797184 slp 154624 Wed 29 Jul 2015 01:46:25 PM CDT
team_t-797188 slp 155648 Wed 29 Jul 2015 01:47:20 PM CDT
team_t-797456 alm 244736 Wed 29 Jul 2015 02:59:17 PM CDT
team_t-828984 slp 16384 Fri 21 Aug 2015 04:53:01 PM CDT
team_t-828985 slp 16384 Fri 21 Aug 2015 04:56:14 PM CDT
team_t-828993 slp 192512 Fri 21 Aug 2015 05:16:37 PM CDT
team_t-829082 dlc 243712 Sun 23 Aug 2015 07:44:47 AM CDT
team_t-829103 glt 187392 Sun 23 Aug 2015 07:20:19 PM CDT
team_t-829114 ddh 17408 Mon 24 Aug 2015 06:03:36 AM CDT
team_t-829115 ddh 16384 Mon 24 Aug 2015 06:04:16 AM CDT
team_t-898551 alh 219136 Wed 14 Oct 2015 02:56:02 PM CDT
team_t-898552 alh 238592 Wed 14 Oct 2015 02:56:21 PM CDT
team_t-898619 ljr 141312 Wed 14 Oct 2015 03:31:28 PM CDT
team_t-898717 ljr 144384 Wed 14 Oct 2015 03:54:16 PM CDT
team_t-898826 dlc 320512 Thu 15 Oct 2015 06:39:42 AM CDT
team_t-898834 alm 367616 Thu 15 Oct 2015 07:05:41 AM CDT
team_t-966858 ljr 1857536 Thu 03 Dec 2015 03:48:23 PM CST
team_t-966863 ljr 555008 Thu 03 Dec 2015 03:50:10 PM CST
thermal12-980170 clw 1024 Fri 11 Dec 2015 02:32:39 PM CST
thermal13-851959 wdp 1024 Thu 10 Sep 2015 11:35:08 AM CDT
thermal13-898422 wdp 1024 Wed 14 Oct 2015 02:01:37 PM CDT
thermal13-967002 wdp 1024 Thu 03 Dec 2015 04:24:59 PM CST
thermal13-967011 wdp 1024 Thu 03 Dec 2015 04:25:49 PM CST
thermal20-870628 czp 1024 Wed 23 Sep 2015 02:08:13 PM CDT
Kill jobs: yes
Loading jobs in kill que..
[tep@coltrane ruby]$ ruby prt_jobs_check davey
closing_2-205137 snb 231424 Wed 29 Jul 2015 01:40:00 PM CDT
closing_2-205138 snb 232448 Wed 29 Jul 2015 01:40:33 PM CDT
closing_2-205139 jiw 242688 Wed 29 Jul 2015 01:40:48 PM CDT
closing_2-205140 jiw 228352 Wed 29 Jul 2015 01:41:06 PM CDT
closing_2-205164 jiw 222208 Wed 29 Jul 2015 02:38:37 PM CDT
laser20-205141 sdj 814080 Wed 29 Jul 2015 01:45:28 PM CDT
laser20-205142 sdj 649216 Wed 29 Jul 2015 01:45:44 PM CDT
laser20-205143 sdj 649216 Wed 29 Jul 2015 01:47:05 PM CDT
laser27-205163 acm 684032 Wed 29 Jul 2015 02:38:20 PM CDT
laser27-209301 acm 14336 Fri 21 Aug 2015 07:43:38 AM CDT
laser27-220263 acm 265216 Thu 15 Oct 2015 06:54:16 AM CDT
laser27-220264 acm 16384 Thu 15 Oct 2015 06:54:17 AM CDT
laser31-220266 jal 1024 Thu 15 Oct 2015 06:56:57 AM CDT
laser32-220265 tep 39936 Thu 15 Oct 2015 06:54:54 AM CDT
npl_3-220245 jrr 176128 Wed 14 Oct 2015 03:32:03 PM CDT
ship_setup2-205177 slf 1193984 Wed 29 Jul 2015 03:02:27 PM CDT
ship_setup2-205178 slf 1571840 Wed 29 Jul 2015 03:02:47 PM CDT
ship_setup2-205180 slf 1571840 Wed 29 Jul 2015 03:03:34 PM CDT
team_d-209530 akn 1393664 Sun 23 Aug 2015 07:09:12 AM CDT
team_d-209533 akn 50176 Sun 23 Aug 2015 12:47:52 PM CDT
team_d-209534 akn 50176 Sun 23 Aug 2015 01:05:16 PM CDT
team_d-209535 akn 50176 Sun 23 Aug 2015 01:07:02 PM CDT
team_f-206217 jlh 1327104 Wed 05 Aug 2015 01:07:12 PM CDT
verif_jet-220261 twk 1369088 Thu 15 Oct 2015 06:51:34 AM CDT
verif_jet-220262 twk 1363968 Thu 15 Oct 2015 06:52:09 AM CDT
verif_jet-220267 twk 1372160 Thu 15 Oct 2015 07:01:45 AM CDT
verif_jet-220268 twk 1374208 Thu 15 Oct 2015 07:02:00 AM CDT
verif_jet-221015 sum 1258496 Tue 20 Oct 2015 11:44:50 AM CDT
verif_jet-221016 sum 1198080 Tue 20 Oct 2015 11:45:32 AM CDT
verif_jet-221017 sum 1227776 Tue 20 Oct 2015 11:46:34 AM CDT
verif_jet-221018 sum 1190912 Tue 20 Oct 2015 11:47:51 AM CDT
verif_jet-221019 sum 1179648 Tue 20 Oct 2015 11:48:08 AM CDT
verif_jet-221030 tad 1681408 Tue 20 Oct 2015 12:11:39 PM CDT
verif_jet-221031 tad 903168 Tue 20 Oct 2015 12:11:44 PM CDT
verif_jet-221032 tad 872448 Tue 20 Oct 2015 12:11:50 PM CDT
verif_jet-221033 tad 1716224 Tue 20 Oct 2015 12:12:56 PM CDT
Kill jobs: yes
Loading jobs in kill que..

Answer Source

You're question is very vague but I think I get it so I'll take a stab at it. I think you want to parse that output and get the Job IDs, right? I'm assuming the Job ID is in the 3rd column in that output, let's take an excerpt:

output = <<-HEREDOC
laser26-828837          kaj            1042432   Fri 21 Aug 2015 03:59:35 PM CDT
laser26-828982          leb             446464   Fri 21 Aug 2015 04:52:20 PM CDT
laser26-828983          leb            1042432   Fri 21 Aug 2015 04:52:20 PM CDT
HEREDOC

To get all the Job IDS from that string, we can map over each line, split the line up by spaces and get the 3rd item:

column = 2 # 3rd column
job_ids = output.lines.map { |line| line.split(/\s+/)[2] }
# => ["1042432", "446464", "1042432"]

Hope that helps.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download