Monitoring System Operation
Example of a System Management Program
107365 Tandem Computers Incorporated
8–9
Figure 8-1. Monitoring System Status (Page 8 of 12)
== Get the percent full for TMF audit trail files
#OUTPUT
[#LOOP |DO|
#SET file [#FILENAMES/MAXIMUM 1, PREVIOUS
[file]/$*.AUDIT.*]
[#IF (NOT [#EMPTYV file]) |THEN|
[#SETMANY eof primary secondary code ,
[#FILEINFO/EOF,PRIMARY,SECONDARY,CODE /[file]]
] == end setmany
[#IF ([code] = 134) |THEN|
#SET full [#COMPUTE (eof*100) / &
((p(15*secondary)) * 2048)]
[#IF [termout] AND ([full] = 100) |THEN|
#OUTPUT [rev][file] is 100 percent full.[end]
|ELSE|
#OUTPUT [file] is [full] percent full.
] == end if termout
] == end if code
] == end if not emptyv
|UNTIL| ([#EMPTYV file])
] == end loop
#POP volok stat line volume vol status file code
#POP eof primary secondary code full
#OUTPUT
== ---------------------------------------------------------
== Display disk status.
== ---------------------------------------------------------
== Use PUP to get the status.
== Save output in pup_out.
== Loop, ignoring blank lines, and tokenize each line.
== Display paths in the "H", "D", "R", and "S" states.
== Display paths that are not "P" or "M",the preferred paths.
== Due to the format change of PUP output, this portion
== will work for C20 or later versions of PUP only.
#PUSH scanline badsectorflag puplistdev pupcommand
[#IF [version] >= 20 |THEN|
#OUTPUT PUP information:
#SET badsectorflag 0
PUP /OUTV puplistdev/ LISTDEV DISC == collect data
#EXTRACTV puplistdev scanline == remove banner
#EXTRACTV puplistdev scanline == copy right
[#LOOP |WHILE| NOT [#EMPTYV puplistdev] | DO |
#EXTRACTV puplistdev scanline == get one line