InícioScripts › Monitoramento

Script CLP — Monitoramento do Sistema

Gera relatório completo de status do sistema: CPU, jobs ativos, disco, subsistemas e impressoras. Ideal para agendamento diário.

Como Usar

1. Crie o membro fonte em sua biblioteca de scripts:

STRSEU SRCFILE(SCRIPTLIB/QCLSRC) SRCMBR(MONITORA) TYPE(CLP)

2. Cole o código abaixo no editor SEU.

3. Compile o programa:

CRTCLPGM PGM(SCRIPTLIB/MONITORA) SRCFILE(SCRIPTLIB/QCLSRC) SRCMBR(MONITORA)

4. Execute manualmente:

CALL PGM(SCRIPTLIB/MONITORA)

5. Agendar execução diária às 07:00:

ADDJOBSCDE JOB(MONITORA) CMD(CALL PGM(SCRIPTLIB/MONITORA)) FRQ(*WEEKLY) SCDDAY(*ALL) SCDTIME('07:00:00')

Código-fonte CLP

/*===========================================================*/
/* MONITORA.CLP — Monitoramento do Sistema AS/400            */
/* Versão 1.0 — AS/400 Lab                                   */
/*===========================================================*/
PGM

DCL VAR(&DATA)     TYPE(*CHAR) LEN(10)
DCL VAR(&HORA)     TYPE(*CHAR) LEN(8)
DCL VAR(&SISTEMA)  TYPE(*CHAR) LEN(8)
DCL VAR(&MSG)      TYPE(*CHAR) LEN(200)

/* Obter data, hora e nome do sistema */
RTVSYSVAL  SYSVAL(QDATE)    RTNVAR(&DATA)
RTVSYSVAL  SYSVAL(QTIME)    RTNVAR(&HORA)
RTVSYSVAL  SYSVAL(QSYSNAME) RTNVAR(&SISTEMA)

/* Notificar início */
CHGVAR VAR(&MSG) VALUE('==== INICIO MONITORAMENTO: ' *CAT +
       &SISTEMA *CAT ' - ' *CAT &DATA *CAT ' ' *CAT &HORA *CAT ' ====')
SNDMSG MSG(&MSG) TOUSR(QSYSOPR) MSGTYPE(*INFO)

/* 1. Status do Sistema (CPU e Memória) */
SNDMSG MSG('--- 1. STATUS DO SISTEMA ---') TOUSR(QSYSOPR) MSGTYPE(*INFO)
WRKSYSSTS OUTPUT(*PRINT)

/* 2. Jobs Ativos */
SNDMSG MSG('--- 2. JOBS ATIVOS ---') TOUSR(QSYSOPR) MSGTYPE(*INFO)
WRKACTJOB OUTPUT(*PRINT)

/* 3. Status de Disco */
SNDMSG MSG('--- 3. STATUS DE DISCO ---') TOUSR(QSYSOPR) MSGTYPE(*INFO)
WRKDSKSTS OUTPUT(*PRINT)

/* 4. Subsistemas Ativos */
SNDMSG MSG('--- 4. SUBSISTEMAS ---') TOUSR(QSYSOPR) MSGTYPE(*INFO)
WRKSBS OUTPUT(*PRINT)

/* 5. Filas de Jobs */
SNDMSG MSG('--- 5. FILAS DE JOBS ---') TOUSR(QSYSOPR) MSGTYPE(*INFO)
WRKJOBQ OUTPUT(*PRINT)

/* 6. Impressoras e Output Queues */
SNDMSG MSG('--- 6. IMPRESSORAS ---') TOUSR(QSYSOPR) MSGTYPE(*INFO)
WRKCFGSTS CFGTYPE(*DEV) CFGD(*PRT) OUTPUT(*PRINT)
WRKOUTQ OUTPUT(*PRINT)

/* Notificar conclusão */
RTVSYSVAL  SYSVAL(QTIME) RTNVAR(&HORA)
CHGVAR VAR(&MSG) VALUE('==== FIM MONITORAMENTO: ' *CAT +
       &SISTEMA *CAT ' - ' *CAT &DATA *CAT ' ' *CAT &HORA *CAT ' ====')
SNDMSG MSG(&MSG) TOUSR(QSYSOPR) MSGTYPE(*INFO)

ENDPGM

O que o script gera

SeçãoComando usadoO que verifica
Status do sistemaWRKSYSSTSCPU%, memória, faults
Jobs ativosWRKACTJOBTodos os jobs em execução
Disco (ASP)WRKDSKSTSUso de espaço em disco
SubsistemasWRKSBSStatus de cada subsistema
Filas de jobsWRKJOBQJobs aguardando e filas seguradas
ImpressorasWRKCFGSTS + WRKOUTQStatus de devices e spools
Dica: Todos os relatórios são enviados para o SPOOL do job. Consulte o output após a execução com WRKSPLF.