Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tuklusan/4a2c687bae1c7c815f2836b2532f2232 to your computer and use it in GitHub Desktop.
Save tuklusan/4a2c687bae1c7c815f2836b2532f2232 to your computer and use it in GitHub Desktop.
SANYALNET-NODE-STATUS.COM (RAPTOR DEC ALPHASERVER OPENVMS): DEC ALPHA SERVER VMS OpenVMS DCL script to report status of DECnet nodes in SANYALnet Labs in HTML: See http://sanyal.duckdns.org/sanyalnet-labs-decnet-node-status.html (This script runs as a scheduled job on SYS$BATCH on RAPTOR Digital Alphaserver ES40 running OpenVMS Operating System)
$! ---
$! 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="DKA100:[OSUHTTPD.DOCUMENTS]sanyalnet-labs-decnet-node-status.html"
$!
$ SET PROC/PRIV=ALL
$ SET NOON
$ NCP="MCR NCP"
$!
$ 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 ALPHA SERVER VMS (RAPTOR)</TITLE>"
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<meta http-equiv=""refresh"" content=""300"">"
$ 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 content=""Status of servers communicating over DECnet networking protocol in Supratim Sanyal''s Hobbyist Laboratory"" name=description>"
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<META content=""DEC,Alpha,Alphaserver,Alpha Server,Digital,OpenVMS,VMS,DECnet,OSU HTTP Server,OSU HTTPD,Alphaserver ES40"" name=keywords>"
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<link rel=""canonical"" href=""http://sanyal.duckdns.org/sanyalnet-labs-decnet-node-status.html"" />"
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<link rel=""shortcut icon"" href=""/images/favicon.ico"" /><link rel=""icon"" href=""/images/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=""/images/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=""/"">RAPTOR ALPHASERVER</a></p><p><img src=""/images/sanyalnet-labs-logo-tr.gif"" alt=""SANYALnet Labs | 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 "<hr>"
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<pre>"
$ DEFINE/USER SYS$OUTPUT FD_OUTPUTHTML ! Valid for only next image execution
$ SHOW CPU /BRIEF
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "</pre>"
$!
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<pre>"
$ DEFINE/USER SYS$OUTPUT FD_OUTPUTHTML ! Valid for only next image execution
$ SHOW NETWORK
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "</pre>"
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<hr>"
$!
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<table border=""1""><caption>Selected Node Status</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"">&nbsp;&nbsp;</td>"
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<td><a target=""_blank"" href=""http://mim.update.uu.se/hecnod?node=''NODE'"">''NODE' &raquo;</a></td></tr>"
$ ELSE ! IS REACHABLE
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<tr><td bgcolor=""#55ff55"">&nbsp;&nbsp;</td>"
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<td><a target=""_blank"" href=""http://mim.update.uu.se/hecnod?node=''NODE'"">''NODE' &raquo;</a></td></tr>"
$ ENDIF
$ NEXT = NEXT + 1
$ GOTO LOOP
$ ENDIF
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "</table>"
$!
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<h1>RAPTOR Active DECnet Information</h1>"
$!
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<h2>RAPTOR 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>RAPTOR 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>RAPTOR 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>RAPTOR 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 "<hr>"
$!
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<p>Created by a DCL Command Procedure and presented by OSU/DECthreads HTTP-server / Digital AlphaServer ES40 / OpenVMS Alpha 8.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><img src=""/images/digital-logo-400x124.png"" width=""200"" height=""62"" alt=""Logo of DEC (Digital Equipment Corporation)""></p>"
$ WRITE/ERROR=ERR_EXIT FD_OUTPUTHTML "<p><a href=""/"">Home &raquo;</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