[comp.sys.apollo] lcnode, lcnet, ns_helper

szabo_p@maths.su.oz.au (Paul Szabo) (04/16/91)

In article <50fdf289.cb12@dabo.citi.umich.edu> rees@citi.umich.edu (Jim Rees)
writes:
> In article <dennis.671728212@woodstock>, dennis@nosc.mil (Dennis Cottel)
> writes:
>   > Or you can let lcnode figure out all the node names:
>   > for node in ^"/etc/lcnode -r -b" by line
>   Unfortunately, HP/Apollo has not seen fit to make this work with multiple
>   rings in an Apollo internet.
> It occurs to me that there must be some way to get ns_helper to tell you the
> names of all the nodes in your Domain internet ... (neither the
> lcnode or ctnode man pages even mention ns_helper...)
> Anyone know how to do this?

There are two ways to do this: use lcnet/lcnode to list all nodes that are
currently alive, or list the ns_helper database (which may have old or missing
information).

Use /etc/lcnet to display the current networks ('man lcnet' for info on
possible options):
% /etc/lcnet
           First        
Network     Hop     Hops
========   =====    ====
814E4402      --   local
814E4403   15AE0       1
814E4404   1A581       1
814E4405   207FC       1
814E4406   19C7A       1
and then use a series of commands like '/etc/lcnode -from 814E4403.15AE0' to
list the nodes on the other networks.

List the ns_helper database using the edns command ('man edns' for more info):
% /etc/edns
The default ns_helper is 814E4402.2204A
<edns> ld
big     c521    ...
<edns> ld -ia
       internet
        address  name
814E4402.01A581  big
814E4403.024F1D  c521
...
<edns> quit


Paul Szabo    szabo_p@maths.su.oz.au

dennis@nosc.mil (Dennis Cottel) (04/17/91)

Jim Rees:
> It occurs to me that there must be some way to get ns_helper to tell you the
> names of all the nodes in your Domain internet ...

Paul Szabo:
> List the ns_helper database using the edns command ('man edns' for more info):

Edns will give me the info I want -- but the darned thing is interactive
so you can't give it command line arguments to run it from a script (as in
'edns -ld').

Well, sort of true.  I just tried rerouting stdin:

   #!/bin/sh
   edns <<EOF
   ld
   q
   EOF

and it works, but ugly.  It also prints an extraneous header id line and
a summary line at the bottom that would have to be filtered out.  (But
then, that's what Perl's for, right?)  Whatever happened to the Unix
approach of making tools to be used together?

   Dennis Cottel, dennis@NOSC.MIL, (619) 553-1645  
   Naval Ocean Systems Center, San Diego, CA  92152

ward@software.org (David Ward) (04/17/91)

About getting a listing from the ns_helper database:
I was looking at the help page for /com/ld and there is a -root
option described below:

  -root     Display the contents of the replicated root directory managed
            by the naming server helper.

I any scripts where I need a complete list of the nodes on our net,
I use "foreach node (`/com/ld -root -c`)". We have Aegis loaded in
our configuration, so I'm not sure if Aegis' 'ld' is available if you
load strictly BSD or SYS5. It's a pretty basic command, it might be.
Hope this helps.

=====================================================================
Dave Ward - ward@software.org		Apollo Systems Administrator
Software Productivity Consortium	Herndon, Virginia
=====================================================================