Al Here are 2 for you
The one runs from a screen then other I execute from a crontab via a Unix script Hope they help Bob -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Al DeWitt Sent: 25 June 2004 00:10 To: ([EMAIL PROTECTED]) Subject: [U2] Monitoring a count of users logged on I need to be able to monitor the number of users logged into the server. I would want this to run periodically (say every 10 minutes) Monday through Friday, 08:00 - 15:00. I would like the output to go to a text file for later analysis. The output could be as simple as Date, Time, # of Users logged in. Is this something I can do via UniAdmin? Do I need to write a basic program and run it as a phantom? Thanks. Al DeWitt Stylmark, Inc. 763-574-8705 [EMAIL PROTECTED] ------- u2-users mailing list [EMAIL PROTECTED] To unsubscribe please visit http://listserver.u2ug.org/ ______________________________________________________________________ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email ______________________________________________________________________ ______________________________________________________________________ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email ______________________________________________________________________ *-%-%------------------------------------------------------------------* SUBROUTINE EWWATCHER *----------------------------------------------------------------------* * This computer program is the sole copyright of TRAVELLOG SYSTEMS LTD * * It may not be copied, reproduced or used save as licenced. * * Legal action will be taken against any infringement of copyright * * and or licence agreements. * * (C) TRAVELLOG SYSTEMS LTD 2004 * ************************************************************************ * * * ..... PROGRAM TITLE * * EWWATCHER * * * * ..... PROGRAM DESCRIPTION * * EWWATCHER * * * * Ver Date Who Description * * --- ---- --- ----------- * * 1.00 01 MAR 04 bob Created * * * ************************************************************************ * * * ..... Arguments required by this routine :- * * NONE * * * ************************************************************************ * * * ..... External Subroutine Calls :- * * D$DRIVER * * * ************************************************************************ * * * ..... This program called from the following programs :- * * UNKNOWN * * * ************************************************************************ * * * ..... WARNING! LEAVE LINE BELOW FOR HEADER REGENERATION - THANK YOU * *%*%******************************************************************** * $INCLUDE TL.LIB K_COMMON * * * D$004SA1 WILL SET UP SCREEN.ID HERE * * SCREEN.ID = "EWWATCHER" * C.VERSION = "1.00" CALL D$DRIVER(SCREEN.ID) * RETURN * * END CRT "X906944 Start ":OCONV(DATE(),'D2'):" ":OCONV(TIME(),'MTS') OPEN '',"x906944" TO FL ELSE STOP "NO FILE" EOT = '' USERID = '' EXECUTE "! cat /etc/passwd " CAPTURING ALL.THE.USERS NO.USER = DCOUNT(ALL.THE.USERS,@FM) FOR XX = 1 TO NO.USER USERID = FIELD(ALL.THE.USERS<XX>,':',1) IF USERID NE '' THEN FOUND = '' C="! users" EXECUTE C CAPTURING R CONVERT ' ' TO @FM IN R N=DCOUNT(R,@FM) FOR I = 1 TO N L = R<I> IF L = USERID THEN FOUND = 1 EXIT END NEXT READ REC FROM FL,USERID:'*':DATE() THEN END ELSE REC = '' END LASTPOS = DCOUNT(REC<1>,@VM) BEGIN CASE CASE REC<1,LASTPOS> = "OFF" AND FOUND REC<2,-1> = OCONV(TIME(),'MTS') REC<1,-1>='ON' REC<3,-1>=OCONV(DATE(),'D4/') GOSUB UPDATETIMES WRITE REC ON FL,USERID:'*':DATE() CASE REC<1,LASTPOS> = "" AND FOUND REC<2,-1> = OCONV(TIME(),'MTS') REC<1,-1>='ON' REC<3,-1>=OCONV(DATE(),'D4/') GOSUB UPDATETIMES WRITE REC ON FL,USERID:'*':DATE() CASE REC<1,LASTPOS> = 'OFF' AND NOT(FOUND) CASE REC<1,LASTPOS> = 'ON' AND FOUND GOSUB UPDATETIMES WRITE REC ON FL,USERID:'*':DATE() CASE REC<1,LASTPOS> = 'ON' AND NOT(FOUND) REC<2,-1> = OCONV(TIME(),'MTS') REC<1,-1>='OFF' REC<3,-1>=OCONV(DATE(),'D4/') WRITE REC ON FL,USERID:'*':DATE() CASE 1 END CASE END NEXT XX CRT "X906944 End ":OCONV(DATE(),'D2'):" ":OCONV(TIME(),'MTS') RETURN UPDATETIMES: CMD = "! ps -ef | grep ":USERID:" | grep -v grep " EXECUTE CMD CAPTURING PIDLIST NO.PIDS = DCOUNT(PIDLIST,@VM) FOR AA = 1 TO NO.PIDS LNE = TRIM(PIDLIST<AA>) PID = FIELD(LNE,' ',2) TME = FIELD(LNE,' ',7) TME = ICONV(TME,'MT') LOCATE PID IN REC<4,1> BY 'AR' SETTING PIDPOS THEN REC<5,PIDPOS> = TME REC<6,PIDPOS> = TIME() END ELSE REC<4,PIDPOS> = PID REC<5,PIDPOS> = TME REC<6,PIDPOS> = TIME() END NEXT AA RETURN END ------- u2-users mailing list [EMAIL PROTECTED] To unsubscribe please visit http://listserver.u2ug.org/
