Skip to content

Instantly share code, notes, and snippets.

@tnrn9b
Last active December 15, 2016 08:15
Show Gist options
  • Save tnrn9b/8a4559b69398c7d9fc68a2fd07b18e6c to your computer and use it in GitHub Desktop.
Save tnrn9b/8a4559b69398c7d9fc68a2fd07b18e6c to your computer and use it in GitHub Desktop.
server connectivity email notification
//***********************************************************
//*
//* Name: SRVPING
//* Type: ILE RPG Program
//* Desc: Check HOST connectivity
//* Auth: Thomas Reynolds
//*
//***********************************************************
//*
/FREE
Ctl-Opt DFTACTGRP(*NO) BNDDIR('QC2LE');
Dcl-s IPADDR CHAR(13) Inz('11.1.11.11');
Dcl-s sep CHAR(1) Inz('''');
Dcl-s cmdstr CHAR(500);
Dcl-s emlstr CHAR(500);
Dcl-s ServErr IND;
Dcl-s currTime CHAR(8);
Dcl-s currDate CHAR(10);
Dcl-s emlchk CHAR(500);
//*---------------------------------------------------------
//* Prototype for QCMDEXC
//* params: command, command length, double-byte data request
//*---------------------------------------------------------
Dcl-PR qcmdexc ExtPgm('QCMDEXC');
cmd CHAR(500) Const Options(*VarSize);
len PACKED(15:5) Const;
dby CHAR(3) Options(*NoPass);
END-PR;
cmdstr = 'VFYTCPCNN RMTSYS(*INTNETADR) INTNETADR(' +
sep + %Trim(IPADDR) + sep +
') PKTLEN(32) WAITTIME(3) MSGMODE(*VERBOSE *ESCAPE)';
currDate = %Char(%Date():*USA);
currTime = %Char(%Time():*USA);
Eval emlchk = 'SNDSMTPEMM RCP(([email protected] *PRI) ([email protected] *CC)) ' +
'SUBJECT(' + sep + 'SERVER OKAY' + sep + ') NOTE(' + sep +
'<h1> SERVER OKAY </h1><p>DATE: ' + currDate +
'</p><p>TIME: ' + currTime + '</p>' + sep +
') CONTENT(*HTML)';
Eval emlstr = 'SNDSMTPEMM RCP(([email protected] *PRI) ([email protected] *CC)) ' +
'SUBJECT(' + sep + 'SERVER DOWN' + sep + ') NOTE(' + sep +
'<h1> SERVER DOWN </h1><p>DATE: ' + currDate +
'</p><p>TIME: ' + currTime + '</p>' + sep +
') CONTENT(*HTML)';
EXSR check_server;
IF (ServErr);
CallP qcmdexc(emlstr:%Len(%Trim(emlstr)));
ELSE;
CallP qcmdexc(emlchk:%Len(%Trim(emlchk)));
ENDIF;
*InLr = *On;
BEGSR check_server;
MONITOR;
CallP qcmdexc(cmdstr:%Len(%Trim(cmdstr)));
ServErr = *Off;
ON-ERROR ;
ServErr = *On;
ENDMON;
ENDSR;
/END-FREE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment