DECnet on Ubuntu - Tools
Now we will use the DECnet installation. Make sure both Ubuntu installation ("linux1" and "linux2") are up and running on the same network - be it physical or virtual.
For all examples, I will work on "linux1" and contact "linux2" over network. My username and my password are both "joerg".
There are "man" pages for each command below!
"dneigh" - Show other nodes on the net
The command "dneigh" shows other nodes on the same DECnet.
linux2 ether AA:00:04:00:0B:08 --- 1498 eth0
linux1 loop AA:00:04:00:0A:08 --- 16434 lo
Attention: in my tests, I found that "dneigh" shows other nodes only after other applications like "phone" where run.
"dnping" - test "MIRROR" object on remote node.
dnping is not as low-level as TCP/IP ping. It needs an active service on the remote host, and you must also authenticate on the remote host with username and password.
joerg@linux1:~$ dnping linux2 -u joerg -p joerg
Sent 10 packets, Received 10 packets
If something is wrong, the error is "socket: Connection refused.
"phone" - chat with other user
This is pretty cool ... at least it was so in the '80s! You can see who's logged on, and can "ring" him to talk with you over a graphical application.
1) Start phone utiltiy:
(Inside phone, all commands start with "%".)
2) see, who is logged on:
3) Ring him:
4) on the other side, see it "ringing". No matter what you do, your terminal display is every 10 seconds disturbed by the message
LINUX1::JOERG is phoning you on LINUX2:: (17:12:20)
5) on the other node, answer the call :
Now type text, it appears directly in your panel of the "phone" screen on both local and remote host.
6) Hang up
"sethost" - remote login
This is like "telnet". See me logging on from linux1 to linux2:
joerg@linux1:~$ sethost linux2
Connecting to linux2
Cterm connection. Escape Sequence is ^]
CTERM Version 1.0.6
DECnet for Linux
linux2 login: joerg
Last login: Sat Mar 20 19:51:25 CET 2010 on pts/1
Linux linux2 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686
To access official Ubuntu documentation, please visit:
0 packages can be updated.
0 updates are security updates.
"dndir" - show directory on remote node
This is the first file related command I expercise, so things are getting more VMS-like now.
All file-related DECnet commands use OpenVMS syntax for files and directories. Even if both local and remote nodes are Linuxes, the remote node is always accessed as if it would using OpenVMS.
The OpenVMS file path syntax is quite different from UNIX path logic. The generic form for VMS-file names is
node::device :[rootdir .subdir .subdir ...]file .ext ;version
Most parts of the path are optional.
I have an Eclipse-Installation in "/usr/joerg/eclipse" on "linux2". To list its installation directory, type
joerg@linux1:~$ dndir linux2::[home.joerg.eclipse]*.*
Directory of HOME:[JOERG.ECLIPSE]
ABOUT.HTML;1 ABOUT_FILES.DIR;1 ARTIFACTS.XML;1 CONFIGURATION.DIR;1
DROPINS.DIR;1 ECLIPSE.;1 ECLIPSE.INI;1 EPL-V10.HTML;1
FEATURES.DIR;1 ICON.XPM;1 LIBCAIRO-SWT.SO;1 NOTICE.HTML;1
P2.DIR;1 PLUGINS.DIR;1 README.DIR;1
VMS file names are NOT case-sensitive. Filenames are ALWAYS mapped to uppercase, even if this generates duplicate filenames on the remote Linux node.
Subdirectories are listed as normal files, with a ".DIR" extension.
the VMS version number is always "1" for Linux nodes.
"/home" can also be accessed as device "HOME:"
You wonder about missing authentication? No log-in on the remote "linux2" is required here because
we have the rule ".*::.* */DEFAULT" in "/etc/dnet-proxy"
AND we have user "joerg" with password "joerg" on both "linux1" and "linux2".
Normally you must give username and password (for the remote node!) as part of the remote node name. So
node ”username password”
and the generic filename path is now
Whoa! To squeeze all this through the Unix-shell parameter expansion, better surround the whole stuff with single quotes:
joerg@linux1:~$ dndir 'linux2"joerg joerg"::home:[joerg.eclipse]*.*'
"dncopy" - Copy files over DECnet
This is why we're dealing with DECnet!
After managing "dndir", using "dncopy" is easy. The dncopy-Command has the usual syntax
dncopy options sourcefile targetdirectory
joerg@linux1:~$ ls -l >test.out
joerg@linux1:~$ ls -l *.out
-rw-r--r-- 1 joerg joerg 1308 2010-03-25 10:55 test.out
joerg@linux1:~$ dncopy -s test.out 'linux2"joerg joerg"::home:[joerg]'
Sent 1308 bytes in 0.00 seconds: infK/s
joerg@linux1:~$ dndir -l 'linux2"joerg joerg"::home:[joerg]*.out'
Directory of HOME:[JOERG]
TEST.OUT;1 1308 25-MAR-2010 10:55:57 [1750,1750] (RWED,RWD,R,R)
At least VMS-executables (with .EXE-Extension) must be copied with the “-mblock” Option. And other binary files, as backup-dumps, too.
Read “man dncopy” and try experimenting with “-mrecord”,” -mblock” and “-b” options.
There are still more DECnet commands. See the man pages of
- and dnprint.