Skip to content

Instantly share code, notes, and snippets.

@tuklusan
Created March 9, 2019 23:43
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/3678c4c961cb9e2e5a9a08f993a8f4d8 to your computer and use it in GitHub Desktop.
Save tuklusan/3678c4c961cb9e2e5a9a08f993a8f4d8 to your computer and use it in GitHub Desktop.
A DCL Script to check and report if remote nodes are reachable over DECnet. Tested on OpenVMS VAX 7.3 and OpenVMS Alpha 8.3. Tries to guess if remote node is a DECnet Phase IV, Phase V or Cisco Router with no NML, etc.
$! ---
$! AUTHOR: SUPRATIM SANYAL
$! http://tuklusan.decsystem.org
$! ---
$ NODELIST = "QCOCAL,CLOUDY,JUICHI,FEDACH,FOMFOR,OSTARA,WEXPEE,ENTEE4,RAPTOR,IMPVAX,MACOS9,WFW311,WXPEE2,TRU64,XLVII,TSTVAX,MOKSHA,MACOS7,RST101,SHAKTI,IMPRTR,1.750,MASON,DUNE,ZZYZZX,SUBWAY,BMT,KNARF,A12RTR,AREA27,CTAKAH,MIM"
$ OUTPUT_TXT="sys$scratch:sanyalnet-labs-decnet-node-status.txt"
$!
$ SET PROC/PRIV=ALL
$ SET NOON
$ NCP="MCR NCP"
$!
$ OPEN/WRITE/ERROR=ERR_EXIT fd_outputtxt 'OUTPUT_TXT'_TMP
$!
$ NEXT = 0
$ LOOP:
$ NODE = F$ELEMENT(NEXT,",",NODELIST)
$ IF (NODE .NES. ",")
$ THEN
$ WRITE SYS$OUTPUT "***"
$ WRITE SYS$OUTPUT "*** CHECKING ''NODE' ... PLEASE WAIT ..."
$ WRITE SYS$OUTPUT "***"
$ ! 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_outputtxt "''NODE' - ** UNREACHABLE **"
$ ELSE ! IS REACHABLE
$ WRITE/ERROR=ERR_EXIT fd_outputtxt "''NODE' - reachable"
$ ENDIF
$ NEXT = NEXT + 1
$ GOTO LOOP
$ ENDIF
$ CLOSE fd_outputtxt
$ RENAME /NOCONFIRM /LOG 'OUTPUT_TXT'_TMP 'OUTPUT_TXT'
$ PURGE /NOCONF 'OUTPUT_TXT'
$ TYPE/PAGE NLA0: ! CLS
$ TYPE 'OUTPUT_TXT'
$ EXIT
$!
$ ERR_EXIT:
$ CLOSE fd_outputtxt
$ EXIT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment