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ção | Comando usado | O que verifica |
|---|---|---|
| Status do sistema | WRKSYSSTS | CPU%, memória, faults |
| Jobs ativos | WRKACTJOB | Todos os jobs em execução |
| Disco (ASP) | WRKDSKSTS | Uso de espaço em disco |
| Subsistemas | WRKSBS | Status de cada subsistema |
| Filas de jobs | WRKJOBQ | Jobs aguardando e filas seguradas |
| Impressoras | WRKCFGSTS + WRKOUTQ | Status 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.