Created
March 9, 2019 23:43
-
-
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.
This file contains hidden or 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 = "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