Last active
April 21, 2020 02:47
-
-
Save tuklusan/668db59e4d09179a7543b8e78bf6bdaa to your computer and use it in GitHub Desktop.
SANYALNET-NODE-STATUS.COM (QCOCAL VAX): DEC VAX VMS OpenVMS DCL script to report status of DECnet nodes in SANYALnet Labs in HTML: For SYS$BATCH scheduled periodically update output of this OpenVMS DCL command file, see http://sanyalnet-openvms-vax.freeddns.org:82/sanyalnet-labs-decnet-node-status.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$! --- | |
$! AUTHOR: SUPRATIM SANYAL | |
$! http://tuklusan.decsystem.org | |
$! --- | |
$ NODELIST = "IMPVAX,KARMA,PYRTR,QCOCAL,CLOUDY,JUICHI,FEDACH,FOMFOR,OSTARA,WEXPEE,ENTEE4,RAPTOR,MACOS9,WFW311,WXPEE2,TRU64,XLVII,TSTVAX,W2000S,MACOS7,RST101,TWENEX,VAXSTN,XLIV,PIPY,XL,NANAJU" | |
$ NODELIST = NODELIST + ",NJEVX1,NJEVX2,TWONKY,LV,MARIAH,SHAKTI,IBM390,MOKSHA,PYDNET,IMPRTR" | |
$! -- don't disturb other people's nodes -- NODELIST = NODELIST + ",1.750,MASON,DUNE,ZZYZZX,ALDUR,SUBWAY,CTAKAH,MIM,A12RTR,A22RTR,23.1023,34.1023,HUB,A61RTR" | |
$ | |
$ OUTPUT_HTML="dua2:[webroot.html]sanyalnet-labs-decnet-node-status.html" | |
$! | |
$ SET PROC/PRIV=ALL | |
$ SET NOON | |
$ NCP="MCR NCP" | |
$! FIRST, MAKE SURE OUR CLOCK IS GOOD (major drifts under SIMH possible) | |
$! @sys$manager:tcpip$ntp_shutdown | |
$! ntpdate time.google.com | |
$! @sys$manager:tcpip$ntp_startup | |
$! | |
$ OPEN/WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML 'OUTPUT_HTML'_TMP | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN"" ""http://www.w3.org/TR/html4/loose.dtd""><html lang=""en-us""><head><TITLE>SANYALnet Labs: DECnet Node Status - DEC VAX VMS (QCOCAL)</TITLE>" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<meta http-equiv=""Content-type"" content=""text/html; charset=ISO-8859-1"">" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<meta http-equiv=""refresh"" content=""300"">" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<meta http-equiv=""Cache-Control"" content=""no-cache, no-store, must-revalidate"">" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<meta http-equiv=""Pragma"" content=""no-cache"">" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<meta http-equiv=""Expires"" content=""0"">" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<meta name=""description"" content=""Status of servers communicating over DECnet networking protocol in Supratim Sanyal''s Hobbyist Laboratory"">" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<meta name=""keywords"" content=""DEC,VAX,OpenVMS,VMS,DECnet,VAX/VMS,Pathworks"">" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<link rel=""canonical"" href=""http://sanyalnet-openvms-vax.freeddns.org:82/sanyalnet-labs-decnet-node-status.html"">" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<link rel=""shortcut icon"" href=""favicon.ico""><link rel=""icon"" href=""favicon.ico"">" | |
$! -- no stylesheet -- WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<link rel=""stylesheet"" href=""/styles/styles.css"" />" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<meta name=""viewport"" content=""initial-scale=1""></head><body>" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<div align=""center""><img src=""DIGITAL-HEADING.PNG"" alt=""SANYALnet Labs Digital Equipment Corporation DEC Heading Logo""></div>" | |
$ TNOW=F$TIME() | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<p><a href=""/"">QCOCAL VAX</a></p><p><img src=""/SANYALNET-LABS-LOGO.PNG"" alt=""SANYALnet | Supratim Sanyal's Computing Hobby Lab""></p>" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<h1>SANYALnet Labs DECnet Nodes Status</h1>" | |
$! -- Start Google CSE -- | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<div id='google-cse'><script>" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML " (function() {" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML " var cx = '015567988034387983255:4ulgqks3d_a';" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML " var gcse = document.createElement('script');" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML " gcse.type = 'text/javascript';" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML " gcse.async = true;" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML " gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML " var s = document.getElementsByTagName('script')[0];" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML " s.parentNode.insertBefore(gcse, s);" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML " })();" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "</script>" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<gcse:search></gcse:search></div>" | |
$! -- End Google CSE -- | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<p>As of ''TNOW' UTC:</p>" | |
$! | |
$! WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<pre>" | |
$! DEFINE/USER SYS$OUTPUT FD_OUTPUTHTML ! Valid for only next image execution | |
$! SHOW CPU | |
$! WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "</pre>" | |
$! | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<table border=""1""><caption>SANYALnet Labs: Node Reachability over DECnet</caption>" | |
$ NEXT = 0 | |
$ LOOP: | |
$ NODE = F$ELEMENT(NEXT,",",NODELIST) | |
$ IF (NODE .NES. ",") | |
$ THEN | |
$ ! TRY A LOOP; IF RESULT IS ANYTHING EXCEPT "%SYSTEM-F-UNREACHABLE" ASSUME NODE IS REACHABLE | |
$ PIPE (NCP LOOP NODE 'NODE') | SEARCH SYS$INPUT "%SYSTEM-F-UNREACHABLE" | |
$ NCPSTAT=$STATUS ! SEARCH RESULT: %X10000001 = SUCCESS, %X18D78053 = FAILED | |
$ IF NCPSTAT .EQ. %X10000001 ! NODE IS UNREACHABLE | |
$ THEN | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<tr><td bgcolor=""red""> </td>" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<td><strong><pre><a target=""_blank"" href=""http://mim.update.uu.se/hecnod?node=''NODE'"">''NODE' »</a></pre></strong></td>" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<td bgcolor=""red""><font color=""white""><pre>" | |
$ DEFINE/USER SYS$OUTPUT FD_OUTPUTHTML ! Valid for only next image execution | |
$ NCP SHOW NODE 'NODE' | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "</pre><br><pre>%SYSTEM-F-UNREACHABLE, remote node is not currently reachable</pre></font></td></tr>" | |
$ ELSE ! IS REACHABLE | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<tr><td bgcolor=""#55ff55""> </td>" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<td><strong><pre><a target=""_blank"" href=""http://mim.update.uu.se/hecnod?node=''NODE'"">''NODE' »</a></pre></strong></td>" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<td bgcolor=""#55ff55""><pre>" | |
$ DEFINE/USER SYS$OUTPUT FD_OUTPUTHTML ! Valid for only next image execution | |
$ NCP SHOW NODE 'NODE' | |
$ DEFINE/USER SYS$OUTPUT FD_OUTPUTHTML ! Valid for only next image execution | |
$ NCP TELL 'NODE' SHOW EXECUTOR SUMMARY | |
$ DEFINE/USER SYS$OUTPUT FD_OUTPUTHTML ! Valid for only next image execution | |
$ NCP SHOW NODE 'NODE' COUNTERS | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "</pre></td></tr>" | |
$ ENDIF | |
$ NEXT = NEXT + 1 | |
$ GOTO LOOP | |
$ ENDIF | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "</table>" | |
$! | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<h1>QCOCAL Active DECnet Information</h1>" | |
$! | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<h2>QCOCAL Active DECnet Areas</h2><pre>" | |
$ DEFINE/USER SYS$OUTPUT FD_OUTPUTHTML ! Valid for only next image execution | |
$ NCP SHOW ACTIVE AREAS | |
$! | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "</pre><h2>QCOCAL Active DECnet Circuits</h2><pre>" | |
$ DEFINE/USER SYS$OUTPUT FD_OUTPUTHTML ! Valid for only next image execution | |
$ NCP SHOW ACTIVE CIRCUITS | |
$! | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "</pre><h2>QCOCAL Active DECnet Nodes</h2><pre>" | |
$ DEFINE/USER SYS$OUTPUT FD_OUTPUTHTML ! Valid for only next image execution | |
$ NCP SHOW ACTIVE NODES | |
$! | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "</pre><h2>QCOCAL NJE IBM Mainfram Networking Protocol Links</h2><pre>" | |
$ DEFINE/USER SYS$OUTPUT FD_OUTPUTHTML ! Valid for only next image execution | |
$ JCP SHOW LINKS | |
$! | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "</pre><h2>QCOCAL TCPNJE / DNANJE BITNET II HNET ROUTES</h2><pre>" | |
$ DEFINE/USER SYS$OUTPUT FD_OUTPUTHTML ! Valid for only next image execution | |
$ JCP SHOW ROUTES | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "</pre>" | |
$! | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<h1>QCOCAL System Clock</h1>" | |
$! | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<h2>QCOCAL NTP Time Synchronization Status</h2><pre>" | |
$ DEFINE/USER SYS$OUTPUT FD_OUTPUTHTML ! Valid for only next image execution | |
$ ntpdc -c sysinfo | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "</pre>" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<p>Created by a DCL Command Procedure and presented by WASD Web Server / DEC VAXserver 3900 / OpenVMS VAX 7.3.</p>" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<p><img src=""digital.png"" width=""200"" height=""62"" alt=""Logo of DEC (Digital Equipment Corporation)""></p>" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<p><a href=""/"">Home »</a></p>" | |
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "</body></html>" | |
$ CLOSE FD_OUTPUTHTML | |
$! | |
$ IF F$SEARCH("''OUTPUT_HTML'") .NES. "" THEN DELETE/LOG/NOCONFIRM 'OUTPUT_HTML';* ! OTHERWISE WE FAIL AT VERSION 32767 | |
$ RENAME /NOCONFIRM /LOG 'OUTPUT_HTML'_TMP 'OUTPUT_HTML' | |
$! PURGE /NOCONF 'OUTPUT_HTML' | |
$ SET FILE/PROT=(S:R,O:R,G:R,W:R) 'OUTPUT_HTML' | |
$ DIR /FULL 'OUTPUT_HTML' | |
$ EXIT | |
$! | |
$ ERR_EXIT: | |
$ CLOSE FD_OUTPUTHTML | |
$ EXIT |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment