Here is a job that I use to abort users left on over night. This job
lets me exclude job/sessions based on anything in the SHOWJOB output. I
have a few different jobs that must stay on. This job will do an
ABORTJOB, ABORTIO on the ldev and a NSCONTROL Killsess on the Sessions.
It will try only three times and then continue on with the backup of
whatever I can get. I have this limit so that if I get a hung session,
it won't loop forever. I have this job streamed by the backup job. The
backup job waits for a message file which is why the FCOPY at the end of
this job.
John Zoltak
North American Mfg Co
!Job AbortJob,User.Account;HiPri;Pri=Bs;OutClass=,1,1
!#
!#
!################################################################
!# See if this is the FIRST Abortjob Stream
!# If so create the AbortChk file initialized
!# to one. Otherwise read the AbortCount from
!# the file and increment it.
!################################################################
!File AbortChk,Old;Dev=Disc
!If Lft(HPSTREAMEDBY,8) = "ABORTJOB" Then
! Input AbortCount < *AbortChk
!# make AbortCount into an integer type of variable and add 1
! SetVar AbortCount !AbortCount + 1
!Else
! SetVar AbortCount 1
! Purge AbortChk
! Build AbortChk;Rec=-80,,B,Ascii;Disc=5
!EndIf
!Echo !AbortCount > *AbortChk
!#
!#
!################################################################
!# MAKE SURE WE CAN ISSUE OPERATOR COMMANDS!
!################################################################
!Opcoms
!#
!################################################################
!# Stop the log processes
!################################################################
!Continue
!Log OrLog,Stop
!Continue
!Log MmLog,Stop
!Continue
!Log CanLog,Stop
!#
!################################################################
!# Generate Master ShowJob File
!################################################################
!Purge Showjob,Temp
!Build ShowJob;Rec=-80,,,Ascii;Temp
!File Showjob,OldTemp;Dev=Disc
!Showjob Exec;*Showjob
!#
!################################################################
!# Copy to ShowJob Message File For First Pass
!################################################################
!Purge ShowjobM,Temp
!Build ShowjobM;Rec=-80,,,Ascii;Temp;Msg
!File ShowjobM,OldTemp;Dev=Disc
!#
!FCopy From=*Showjob;To=*ShowjobM
!#
!################################################################
!# Re-Build Master ShowJob File w/o non-abortables
!################################################################
!Purge Showjob,Temp
!Build ShowJob;Rec=-80,,,Ascii;Temp
!File Showjob,OldTemp;Dev=Disc
!#
!################################################################
!# Read Message File - Copy back to Showjob File
!################################################################
!While FInfo("ShowjobM",19) > 0
! Input User < *ShowjobM
! If Lft(User,1) = "#" Then
! SetVar Counter 0
! If Str(User,19,4) = " 20" Then
! SetVar Counter Counter + 1
! EndIf
! SetVar Counter Counter + Pos("MCP.LIB", User)
! SetVar Counter Counter + Pos("SUPRVISR,", User)
! SetVar Counter Counter + Pos("MTRUCK0,", User)
! SetVar Counter Counter + Pos("MAINTJOB,", User)
! SetVar Counter Counter + Pos("NA.COPY", User)
! SetVar Counter Counter + Pos("NOABORT,", User)
! If Counter = 0 Then
! Echo Will Abort ![RTrim("!User")]
! Echo ![RTrim("!User")] >> *Showjob
! Else
! Echo Will NOT Abort ![RTrim("!User")]
! EndIf
! EndIf
!EndWhile
!#
!################################################################
!# Now, I have a Showjob File of only the
!# Jobs and Sessions that are to be Aborted
!################################################################
!#
!################################################################
!# Copy Showjob to Message File for Aborts
!################################################################
!#
!Purge ShowjobM,Temp
!Build ShowjobM;Rec=-80,,,Ascii;Temp;Msg
!File ShowjobM,OldTemp;Dev=Disc
!#
!FCopy From=*Showjob;To=*ShowjobM
!#
!While FInfo("ShowjobM",19) > 0
! Input User < *ShowjobM
! SetVar Session RTrim(Lft(User,7))
! SetVar LDev RTrim(Str(User,19,4))
! Continue
! Abortjob !Session
! If Lft(Session,2) = "#S" Then
! Continue
! AbortIo !LDev
! EndIf
!EndWhile
!#
!################################################################
!# Wait awhile for J/S's to Abort
!################################################################
!#
!Pause 60
!#
!################################################################
!# Copy to Message File for KILLSESS Pass
!################################################################
!Purge ShowjobM,Temp
!Build ShowjobM;Rec=-80,,,Ascii;Temp;Msg
!File ShowjobM,OldTemp;Dev=Disc
!#
!FCopy From=*SHowjob;To=*ShowjobM
!#
!While FInfo("ShowjobM",19) > 0
! Input User < *ShowjobM
! SetVar Session RTrim(Lft(User,7))
! ErrClear
! Tell !Session
! If CiError = 0 Then
! Continue
! NSControl KillSess=!Session
! EndIf
!EndWhile
!#
!Showjob
!File Lp;Dev=CsLaser
!Print Showjob;Out=*Lp
!#
!################################################################
!# See if we're still logging
!################################################################
!#
!SetVar StillLogging False
!ErrClear
!Continue
!ShowLogStatus OrLog
!If CiError = Ok Then
! SetVar StillLogging True
!EndIf
!#
!ErrClear
!Continue
!ShowLogStatus MmLog
!If CiError = Ok Then
! SetVar StillLogging True
!EndIf
!#
!ErrClear
!Continue
!ShowLogStatus CanLog
!If CiError = Ok Then
! SetVar StillLogging True
!EndIf
!#
!################################################################
!# If the log processes are still running, then we need to try
!# abortjob again. But if we've tried this three times, just
!# skip it and continue with backup so we don't loop forever.
!################################################################
!#
!If StillLogging Then
! If AbortCount < 3 Then
! Stream AbortJob.Job
! Eoj
! EndIf
!EndIf
!#
!FCopy From=MsgDummy;To=Msg
!#
!Eoj
> -----Original Message-----
> From: Karl Hancock [SMTP:[log in to unmask]]
> Sent: Wednesday, March 18, 1998 4:34 PM
> To: [log in to unmask]
> Subject: [HP3000-L] Logging off users
>
> I remember discussion of a job stream or command file that would log
> off all
> users except the console at a defined time. Does anyone have the file
> or
> listing?
>
> Thanks.
|