L'altro giorno, mentre lavoravo su un problema presso la sede di un cliente, ho notato e ho casualmente menzionato che c'erano due serie di processi applicativi in esecuzione, una serie con un nome generico come Production.SysAdmin e un'altra, in esecuzione da oltre 3 anni, con il nome di una persona, chiamiamolo Fred.SysAdmin. È venuto fuori che Fred aveva lasciato l'azienda da tempo. Non sto dicendo che Fred avesse intenzioni malevole, ma mi è venuto in mente che una delle "migliori pratiche" sempre menzionate è quella di terminare immediatamente le credenziali di accesso di Fred quando lascia l'azienda, magari proprio prima di comunicargli che sta lasciando l'azienda. Ma non ho mai sentito parlare di alcuna migliore pratica relativa alla terminazione dei processi avviati da Fred. Data la durata dei riavvii dei sistemi VOS, sono sicuro che questo scenario non sia unico. Suggerisco che, oltre a terminare le credenziali di accesso quando qualcuno lascia l'azienda, qualsiasi processo in esecuzione a nome di quella persona o che esegue un modulo di programma creato da quella persona venga valutato e poi programmato per la terminazione e, se ritenuto necessario, riavviato da un dipendente attuale. Allo stesso modo, la coda batch dovrebbe essere rivista e qualsiasi richiesta a nome della persona dovrebbe essere valutata, annullata e, se ritenuto necessario, ripresentata da un dipendente esistente.
Per controllare la coda dei batch è possibile utilizzare il comando
elenco_richieste_in_batch -tutte -lunghe
e cerca il nome di Fred come "utente"
|
Request: 59User: Fred.SysAdmin Time queued: 10-08-11 05:00:02 edt Deferred until: 10-08-12 05:00:00 edt Attributes: waiting, not privileged, cannot restart Process priority: 5 Queue priority: 4 Process name: test Command: test.cm Output path: %system#m16_mas>SysAdmin>Fred>test.out Home dir: %system#m16_mas>SysAdmin>Fred Notify users: Fred.* on %system#* |
È possibile utilizzare il comando
analizza_sistema -richiesta_linea (stringa corrispondente a fred (byte 3Bx) chi) -esci
per identificare i processi in esecuzione sotto il nome di Fred.
analyze_system -request_line (string match fred (byte 3Bx) who) -quit OpenVOS Release 17.0.2ah, analyze_system Release 17.0.2ah Current process is 182, ptep 958C5000, Noah_Davids.CAC * 162 958C5000 551080B6 Fred.SysAdmin (testing) |
La seguente macro di comando può essere utilizzata per trovare qualsiasi modulo di programma in esecuzione creato da Fred, indipendentemente dal nome con cui viene eseguito il processo. La macro crea un elenco di tutti i moduli di programma in esecuzione, quindi esegue un display_file_status per determinare chi ha creato il file del modulo di programma e un display_program_module per determinare chi ha associato il modulo di programma. Qualsiasi modulo di programma creato o associato da qualcuno con un nome corrispondente alla stringa immessa viene visualizzato insieme ai processi che eseguono quel modulo di programma. Crea inoltre un report nella directory corrente denominato wr_&NAME&.(data).out, dove &NAME& è l'argomento fornito alla macro. Tutti i nomi vengono convertiti in minuscolo. Se non viene fornito alcun nome, vengono visualizzate le informazioni su ogni modulo di programma in esecuzione e il report viene denominato wr.(data).out.
whos_running fred%phx_vos#m15_mas>SysAdmin>George>loop.pmLegato da: Fred.SysAdmin Creato da: George.SysAdmin loop.pm: L'oggetto è bloccato in lettura da George.SysAdmin (loop) sul modulo. %phx_vos#m16 esecuzione di loop.pm.============================================================%phx_vos#m15_mas>Produzione>test>ftpd.pm Vincolato da: Stcp_Install.Installer Creato da: Fred.SysAdmin ftpd.pm: L'oggetto è bloccato in lettura da Production.SysAdmin (test) sul modulo. %phx_vos#m16 esecuzione di ftpd.pm. pronto 09:05:22
|
& whos_running begins_here |
