This is the command dncopy that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator
dncopy - Copy files to/from a VMS system
dncopy [options] source dest
dncopy [options] source... directory
[-vdisklEVh] [-m mode] [-a record attributes] [-r record format] [-b block size] [-p VMS
dncopy copies files to and from VMS systems.
Files on VMS systems should be specified in the usual transparent DECnet format of
node"username password"::[directory]file. To protect quotes and dollar signs from shell
expansion I recommend that all VMS file specifications be enclosed in single quotes (see
EXAMPLES below). If you don't want to type the password on the command-line then put a
hyphen ("-") in its place and you will be prompted for it.
dncopy can copy single files and multiple files. If multiple files are copied the
destination must be a directory but it may be on the local Linux system or a VMS system.
The files to be copied can be a mixture of VMS files and local files (yes, you can copy
from VMS to VMS with this program, though quite why you would want to I'm not sure)
Wildcards are supported for local and VMS files (of course local wildcards are expanded by
the shell). Remember to use VMS wildcards (*%) on VMS filesystems and Unix wildcards (*?
etc) on Unix files.
The pseudo-filename '-' may be used to represent standard input or standard output to
enable dncopy to be used in a pipeline. Filenames are changed to lower case when copied
from VMS to Linux.
The environment DNCOPY_OPTIONS may be used to provide a default set of options for copying
files. If (for example) you wanted to normally send files as blocks rather than records
you could set DNCOPY_OPTIONS="-mblock". Then, to send a file as records you would need to
type dncopy -mrecord myfile.txt vmsbox:: instead.
Options in DNCOPY_OPTIONS may be overridden by options typed on the command-line except
where there is no negating option available (see -k -d -i ). If you put these options in
DNCOPY_OPTIONS then to remove them you will have to override the whole environment
$ DNCOPY_OPTIONS="" dncopy myfile.txt vmsbox::
dntype is simply a version of dncopy where the output file is forced to "-". Thus it takes
all the same options as dncopy. It is merely a convenience.
-v Verbose operation. The more -v options are present the more verbose dncopy will
become. One -v is roughly equivalent to the /LOG qualifier on the DCL copy command.
More than one is really just useful for debugging.
-i Interactive operation. Prompts before copying a file. This option is roughly
equivalent to the /CONFIRM qualifier on the DCL copy command.
-l Ignore interlocks on files copied from VMS. This will do its best to read the data
regardless of record or file locking, but it won't always succeed.
-s Show transfer statistics. This shows the throughput of all copies (in the case of
wildcard transfers) undertaken in K bytes/second. This time does not include that
to establish the connection. eg when sending to VMS the overhead of creating a
NETSERVER process is not included.
-k Keep version numbers on files copied from VMS systems. By default dncopy will strip
the version number from files because they have no meaning in Linux. if you
specify -k on the command line then the VMS file will be created with exactly the
same name as it had on the VMS system. To access these files under Linux you will
need to enclose them in quotes. eg less "vmsfile.txt;1".
Sets the transfer mode to block or record. record is the default. Normally record
is what you want but block is used for sending binary files to the VMS system. Note
that if you use -mblock to pull files from VMS you may not be able to make sense of
the file on Linux because dncopy will also pull all the VMS internal structuring of
the file as well as the data. Unless you really know what you are doing -mblock is
only really useful for sending files.
Sets the carriage control attributes for files copied to a VMS system. The default
Sets the record format for files copied to a VMS system. The default is stm. In
fact the default is STREAMLF as this corresponds to the format of files on Unix
systems and so is the least likely to result in file corruption. If you are
sending a pure text file then var or vfc may be more appropriate for your
application. fix may be useful for block-structures files and data files.
-b N Set the block size for transfers. The default is high enough for all record
structured files. if you are sending a file with -mblock then you should use this
to set the block size of the file to be created at the VMS end. When sending block
files the default changes to 512 as this is typically what you would want (I hope).
-d Remove any trailing CR characters at the end of a line. This is useful for sending
DOS files to VMS. Only works when transferring in record mode.
When sending files to VMS, sets the protection of the newly created remote file.
Without this option, VMS will set the protection to be the default for the remote
user. The protection should be in VMS-style format and enclosed in single quotes
to protect it from the shell (see example).
This option is ignored when copying from VMS.
-P Queue the file for printing to SYS$PRINT when it arrives at the VMS end.
-D Delete the file when it is closed. This is only really useful in conjunction with
-T connect timeout
Specifies the maximum amount of time the command will wait to establish a
connection with the remote node. a 0 here will cause it to wait forever. The
default is 60 seconds
-E Ignore errors opening output files. This is handy if you are sending a lot of Unix
files to VMS, some of which have illegal filenames (eg ~ backup files). dncopy
will report an error for each file but continue sending.
-h -? Displays help for using the command.
-V Show the version of the tools package that dncopy comes from.
You can put your most commonly used defaults in the environment variable DNCOPY_OPTIONS
bash or ksh:
$ DNCOPY_OPTIONS="-mblock -anone -b1024" ; export DNCOPY_OPTIONS
csh or tcsh:
$ setenv DNCOPY_OPTIONS "-mblock -anone -b1024"
makes dncopy send files as 1024 byte blocks with no carriage control. You can override
these options by specifying replacements on the command-line as usual. Be aware that some
options have no converse (eg -i -k -d -v) so if you put these in DNCOPY_OPTIONS you cannot
disable them without deassigning the variable.
Copy LOGIN.COM from the VMS system "tramp" to Linux as mylogin.com
dncopy 'tramp"christine pjc123"::login.com' mylogin.com
Copy all .TXT files from the VMS directory SYS$SYSDEVICE:[WP] to /tmp:
dncopy 'tramp"christine pjc123"::sys$sysdevice:[wp]*.txt' /tmp
Copy an executable to VMS:
dncopy -mblock test.exe 'tramp"christine pjc123"::[.BIN]'
Copy a file to VMS and set its protection
dncopy secret.dat marsha:: -p (s:, o:rwed, g:re, w:)'
Display the contents of LOGIN.COM:
dtype 'trisha"christine -"::login.com'
You will then be prompted for a password
For fetching files the defaults should serve for most purposes. Most VMS files are record
orientated and -mrecord is the default transfer mode. It is rare you will need to fetch
files using -mblock because you will get all the record control information downloaded too
and that probably isn't any use to you.
Sending files is more complex because VMS supports far more attributes than Linux so you
will need to know something about the file you are sending. Text files should be OK with
the defaults unless you need to change the format from the default STREAMLF to VFC or VAR.
Carriage control can also be specified if you want to be that picky.
Binary files may often need to be sent -mblock to be useful at the VMS end, You will
probably want to specify a block size with the -b option. The default is 512 which is
fairly useful but if you are sending (say) a saveset 8192 or 32256 may be required. Trial-
and-error may be the only way in some cases unless you know the file contents very well.
If you really don't know what to do, just send it -mblock and use the set file/attr
command to massage it on the VMS end until you are happy with it. (If you are using VMS
earlier than 6.1 then you will need the freeware FILE utility to do this)
Use dncopy online using onworks.net services