Updated 2015-02-09 06:32:34 by APN

The Tnm (Tcl Network Managements) compiled extension has been created to work across varied UNIX® and Unix-like systems, by Jürgen Schönwälder [1] and was also ported to run on WindowsNT. It consists of two major (visible) components, and can be successfully stubbed.

The scotty package is an extensive tclsh exension, building on install its own tclsh (named scotty), as well as (depending upon compile and install options) becoming a dynamically loadable extension. It is especially useful by itself for the construction of monitor daemons, and more. It extends tcl with:

  • SNMP (SNMPv1, SNMPv2c, SNMPv2u including access to MIB definitions)
  • ICMP (echo, mask, timestamp and udp/icmp traceroute requests)
  • DNS (a, ptr, hinfo, mx and soa record lookups), as well as NETDB (local access to hosts, services, protocols and similar system databases)
  • HTTP (simple compiled server and client side, each)
  • SUN RPC (portmapper, mount, rstat, etherstat, pcnfs services)
  • NTP (version 3 mode 6 request)
  • UDP (send and receive UDP datagrams)

It also provides easy access to

  • SYSLOG logging with specified importance, as facility daemon
  • JOB scheduling, which significantly extends the normal after capabilities, without the stream parsing presumed by expect..

Although current versions are not namespaced, they are OO in design. Most commands create a command, similar to the class constructor access in [incr Tcl] or widget creation in Tk. Preliminary testing indicates compatibility with [incr Tcl] when both libitcl and tnm are dynamically loaded.

The Tkined (Tcl/tK based Interactive Network EDitor) [2] is a specially constructed wish-based editor. It comes with varied world and regional maps, geographical locations of some IP addresses, a collection of bitmapped images for representing components of a network, and much more. It has a collection of background daemon scripts to run scotty processes as slaves, and a job management for use of those scripts. As such, it can not only use SMTP for network management, but it also can do simple things, like monitoring ping times. [Progress Development]'s valuable "Getting Started with Tkined" [3] is strongly recommended.

It adds several chart types to the Canvas widget for use within its editor sessions, as well.

Most *N?X systems have tailored packages, although it installs well. Two special tools require SUID root status in order to access reserved ports. Downloads of source and Windows at ftp://ftp.ibr.cs.tu-bs.de/pub/local/tkined/devel/

One problem that I found working with the last Debian packaging (00-2-21-2 scotty) is that it is not possible to define a network with a non/octet netmask, like This is dealt in the ip_discover script, but should be managed also at network object level. (Massimo max at mcoletti dot net)

Recent sources, as of February 2002: http://spog.gaertner.de/~schoenfr/scotty/scotty300-snap20000813.zip . Also, Juergen has prepared http://spog.gaertner.de/~schoenfr/scotty/scotty300-snap20020301.zip , a new binary for Windows.

... and the CVS is updated all the time with bug fixes and enhancments ( like Tcl/TK 8.4 support ). Those snapshots are antiques.

Above, where it says it is using SMTP for network mgmt....... Isn't that supposed to be SNMP? Unless there is some nifty SNMP over SMTP RFC...

Apparently there has been a problem with the CVS server and there is now a snapshot made every night of the scotty source code available at: ftp://ftp.ibr.cs.tu-bs.de/local/scotty/scotty-cvs-snapshot.tar.gz (took me a long time to find this out)

Unfortunately the above snapshot was removed (as of 11-16-2004)

However, some versions of scotty code can still be found at ftp://ftp.ibr.cs.tu-bs.de/pub/local/tkined/ Anyone know who runs that site?

what would be cool for Tnm 3.1, a wish list Tnm3.1

Note that Tnm 3.0.0 appears to have a bug that requires one to have $HOME in one's exported environment. The code looks for "~/.tnm" . If one attempts to use Tnm from cron, without having set $HOME, you are likely to get the error:
 Called UpdateStringOfFsPath with invalid object

Hmm, I wonder if Tcl_FSConvertToPathType should check for that...


Dead links as of 2012-12-11 (to save others clicking them):

[kjk] - 2011-09-25 17:12:19
  http://www.gaertner.de/~schoenfr/scotty/scotty-300-20040814.tar.gz   is still working.

APN https://github.com/flightaware/scotty is Flightaware's fork which in my search as of 2015-02-09 is the most recently active.