# ****************************************************************** # Filename - DISCSTAT # # Writes "DISCFREE D" statistics to a date stamped file (DSyymmdd) # followed by "SHOWJOB STATUS" to the same file. The information is # written to the file at 10 minute intervals. The logging is # stopped at a presubscibed time (e.g., the close of business). # # Specific Data elements are then extracted from the raw data # and stored in another date stamped file (DXyymmdd) in comma # delimited format. This file can be downloaded and imported to # PC applications for the purpose of statistical analysis. # # Requires command file TODAY. TODAY is used to construct the # date stamped filenames. # # Written by: Steve Barrett # # ****************************************************************** today ,t setvar f_name "ds"+"!tdate5" if finfo('!f_name',0) = FALSE build !f_name;rec=-80,,f,ascii;dev=disc;disc=10000 endif file discsp=!f_name,old;dev=disc;acc=append;save # ********************************************************** # * Change the "stp_time" variable for each day of the week # * to accomodate your schedule. # * # * This will normally be the time for the close of business. # * The program uses this time to stop gathering the statistical # * data into the raw data file (DSyymmdd). # ********************************************************** # # # SUNDAY STOP TIME # if !hpday = 1 setvar stp_time "18:05" endif # # # MONDAY STOP TIME # if !hpday = 2 setvar stp_time "21:05" endif # # # TUESDAY STOP TIME # if !hpday = 3 setvar stp_time "21:05" endif # # # WEDNESDAY STOP TIME # if !hpday = 4 setvar stp_time "21:05" endif # # # THURSDAY STOP TIME # if !hpday = 5 setvar stp_time "21:05" endif # # # FRIDAY STOP TIME # if !hpday = 6 setvar stp_time "18:05" endif # # # SATURDAY STOP TIME # if !hpday = 7 setvar stp_time "17:05" endif setvar hp_time "" while "!hp_time" < "!stp_time" discfree d >>*discsp showjob status >>*discsp pause 600 setvar hp_hour !hphour setvar hp_min !hpminute if !hp_hour < 10 setvar hp_hour "0"+"!hp_hour" endif if !hp_min < 10 setvar hp_min "0"+"!hp_min" endif setvar hp_time "!hp_hour"+":"+"!hp_min" endwhile # # # ************************************************************* # * Begin extracting fields from the raw data and storing them # * in a comma delimited ascii file. # ************************************************************* # setvar f_name2 "dx"+"!tdate5" setvar f_name3 "sc"+"!tdate5" if finfo('!f_name2',0) = FALSE build !f_name2;rec=-80,,f,ascii;dev=disc;disc=3000 endif file dsxtr=!f_name2,old;dev=disc;acc=append;save reset discsp file discsp=!f_name,old;dev=disc if finfo('!f_name3',0) = TRUE purge "!f_name3" endif build !f_name3;rec=-80,,f,ascii;dev=disc file scr=!f_name3,old;dev=disc # # ******************************************************** # ******************************************************** # These are the various record fields to be extracted from # the raw data: # ******************************************************** # ******************************************************** # # ******************************************************** # RECORD # 7 - DEV SIZE # START - 25 / LENGTH - 10 # VARIABLE NAME - F1 # ******************************************************** # RECORD # 8 - TRANS SPACE # START - 25 / LENGTH - 10 # VARIABLE NAME - F2 # ******************************************************** # RECORD # 8 - PERM SPACE # START - 63 / LENGTH - 10 # VARIABLE NAME - F3 # ******************************************************** # RECORD # 9 - MAX TRANS SPACE # START - 25 / LENGTH - 10 # VARIABLE NAME - F4 # ******************************************************** # RECORD # 9 - MAX PERM SPACE # START - 63 / LENGTH - 10 # VARIABLE NAME - F5 # ******************************************************** # RECORD # 14 - TIME # START - 20 / LENGTH - 8 # VARIABLE NAME - F8 # ******************************************************** # RECORD # 18 - NUMBER OF JOBS/SESSIONS EXECUTING # START - 3 / LENGTH - 3 # VARIABLE NAME - F6 # ******************************************************** # RECORD # 18 - SESSIONS # START - 18 / LENGTH - 3 # VARIABLE NAME - F7 # ******************************************************** setvar f_header "TIME,DEV SIZE,TR SPACE,MAX TR SP,PERM SPACE," setvar f_header "!f_header"+"MAX PERM SP,J/S,SESSIONS" echo !f_header >*dsxtr setvar w_count 1 setvar rec_cnt 0 setvar raw_rec " " while "!raw_rec" <> "" while (!rec_cnt < 21) setvar raw_rec "r"+"!rec_cnt" setvar r_point ((21 * !w_count) - 21 + !rec_cnt) fcopy from=*discsp;to=*scr;subset=!r_point,1 >$NULL continue input !raw_rec <*scr if hpcierr > 0 setvar raw_rec "" else if !rec_cnt = 7 setvar f1 str(!raw_rec,25,10) endif if !rec_cnt = 8 setvar f2 str(!raw_rec,25,10) setvar f3 str(!raw_rec,63,10) endif if !rec_cnt = 9 setvar f4 str(!raw_rec,25,10) setvar f5 str(!raw_rec,63,10) endif if !rec_cnt = 18 setvar f6 str(!raw_rec,3,3) setvar f7 str(!raw_rec,18,3) setvar x0 pos(" ","!f7") if !x0 > 0 setvar f7 str("!f7",1,(x0 - 1)) setvar f7 str(" ",1,(3-len("!f7")))+"!f7" endif endif if !rec_cnt = 14 setvar x1 str(!raw_rec,20,2) setvar x2 str(!raw_rec,23,2) setvar x3 str(!raw_rec,26,1) setvar f8 "!x1"+"!x2" if x3 = "P" setvar f8 (!f8 + 1200) if f8 > 2400 setvar f8 (!f8 - 1200) endif endif if (x3 = "A") and (!f8 > 1200) setvar f8 (!f8 - 1200) endif setvar x4 len("!f8") if x4 < 4 setvar pad str(" ",1,(4 - x4)) setvar f8 pad+"!f8" endif endif endif setvar rec_cnt (!rec_cnt + 1) endwhile setvar rec_cnt 0 setvar fields "!f8"+","+"!f1"+","+"!f2"+","+"!f4"+"," setvar fields "!fields"+"!f3"+","+"!f5"+","+"!f6"+","+"!f7" if ("!raw_rec" <> "") echo !fields >>*dsxtr endif pause 1 setvar w_count (!w_count + 1) endwhile errclear purge !f_name3 deletevar @ reset @ pause 2 return