From: mpye@netcom.com (Michael Pye)
Subject: Operations Manual (ascii) 2/3
Date: Fri, 11 Sep 92 11:09:51 GMT
Organization: Netcom - Online Communication Services  (408 241-9760 guest) 

     SET PROTECTION=(G:RWED, W:RE) REPORT.DIR

Now let's assume that she changes her mind and wants to take away all
access from the WORLD, and give only Read and Execute to the GROUP:

     SET PROTECTION=(G:RE, W) REPORT.DIR

The SYSTEM and OWNER fields are manipulated the same way.  You can
change who has access to any file or directory that you create.  An
important note about the SYSTEM field: Leave it alone.  Anyone who has
SYSTEM privs can access your files whether you want them to or not.
And there are certain files (such as MAIL files) that can get messed
up if you change this field.

In addition to being able to protect individual files, general
protections also play an important role in controlling access to your
directory and subdirectories.  Generally speaking, a user must have
(at least) execute access to you main directory (and to any
intervening subdirectories) to be able to access any file.  Note,
however, that with only execute access, other users won't be able to
learn the names of your files (a DIR won't work)  Therefore, if you
want people to be able to access a particular file, you'll need to
provide them with the specific file names they'll need since they
won't be able to search your directory themselves.  If you DO want to
allow other users to be able to read your directory, put EXECUTE and
READ protections on your directory.  They can then do a directory of
your account just as they'd do a directory of their own area.  Note,
also, that users MUST have READ access to your directory to be able to
do a "wildcard" copy of files from your account.  Don't worry too much
about this.  When giving others access to your files, it's pretty much
standard to give them both EXECUTE and READ.

Lastly, NEVER give WORLD or GROUP either WRITE or DELETE access to ANY
directory!!
--
                                                         File Security
                                   
                                   
Specific File Permissions:

While general file protections work fine most of the time, there are
some instances where you need to grant special access privileges to
only one user (or a group of users).  In such cases, you'll want to
use Access Control Lists (ACLs) instead of general file protection.

While ACLs allow a bewildering array of attributes to be established
for a given file, the most common ACL-related commands a user would
use are shown below:

     $ DIR/ACL MYFILE.TXT
          This will display MYFILE.TXT's current Access Control Lists
(if any)

     $ SET ACL/ACL=(ID=TWJELKS,ACC=R) MYFILE.TXT
          This will give TWJELKS "R"ead permission to MYFILE.TXT

     $ SET ACL/ACL=(ID=BSING,ACC=CONTROL) MYFILE.TXT
          This will give BSING all the access enjoyed by the actual
file owner

     $ SET ACL/ACL=(ID=GRCREWS,ACC=NONE) MYFILE.TXT
          This eliminates any access that GRCREWS would have had to
MYFILE.TXT

     $ SET ACL/ACL=(ID=[DAC,*],ACC=R) MYFILE.TXT
          This will give all members of the DAC group (Data Control)
"R"ead access to MYFILE.TXT

     $ SET ACL/DEL MYFILE.TXT
          This will remove all ACLs except those with the PROTECTED
option

NOTE:  ACC=NONE may not eliminate access by a given person to a
particular file;  some users have multiple accounts and you may miss
one or more of their IDs.

ACLs that pertain to a particular individual should be put ahead of
more general ACLs since the first ACL that's matched terminates ACL
evaluation.  In the above examples, if the GRCREWS ACL were give AFTER
the general DAC ACL, GRCREWS would still have access to the file since
that account is a member of the DAC (Data Control) group.

Overuse of ACLs impact system performance.
--
                                     Monitoring & Balancing the System
                                   
                                   
What to do For a System SlowDown

At times users may complain that the system is responding more slowly
than usual.  A number of problems could cause this - for example, a
poorly tuned system, heavy use of certain programs, or a low amount of
available disk space.  It is the system manager's responsibility to
correct this type of problem.

The following commands can be useful in narrowing down what is causing
the problem:

  $ SHOW SYSTEM
  $ SHOW DEVICES/MOUNTED
  $ SHOW DEVICES/FULL
  $ SHOW MEMORY
  $ SHOW PROCESS/CONTINUOUS    For looking at a suspect job.
  $ MONITOR SYSTEM             This will watch the system as a whole.
  Use CTRL/Z to quit.
  $ MONITOR PROC/TOPC          This will watch the CPU loading.  Use
  CTRL/Z to quit.

If you suspect a particular user/job is doing something out of the
ordinary and wish to monitor what they're doing, do the following:
(1) Locate the PID of the job you want to monitor with:

  $ SH USERS/FULL              Use to display current users with PID
  #s.

Assuming that the PID you with to monitor is 21003A24 (just an
example), monitor that job with:

  $ SH PROC/CONT/ID=21003A24   Continuously monitors an individual
  job.  Use CTRL/Z to quit.


If the system response is too slow and you can't find the problem, the
following may be done to speed things up.

  $ SET LOGINS/INTERACTIVE     Use to display the current interactive
  login limit.
  $ SET LOGINS/INTERACTIVE=n   Use to set the interactive login limit
  to a lower number.
  
  Request that some people log off.



What to do If The System is Hung

If the system is hung, a problem has completely stopped the system but
does not make the system fail (the system does not respond to DCL
commands or let users log in, but has not printed a crash message on
the console).  In this instance, it may be necessary to force a system
failure.  Check several different terminals to make sure that the
system is hung before forcing a system failure.  If the system is part
of a cluster, check to see if all members of the cluster have failed.
If some members of the cluster are still functioning, it may be
possible to use them to check further on what the status of the
cluster, network, are.  In particular, you can issue a SET HOST
command to attempt to log into the unresponsive system.

If the system is hung, it is important to force a system failure in a
way that saves information.  For this reason, turning the power off
and on again should be a last resort.  For instructions on forcing an
emergency failure, refer to the section "Emergency Crash" or
"Emergency Shutdown" in the VMS Installation and Operations manual for
the processor in question.

The normal method for forcing a system failure is the following:

  y  Press CTRL/P.
  y  At the >>> prompt, enter the command @CRASH.

Again, make sure that the system is actually hung before entering
these commands.  After the system is down, refer to the ShutDown and
StartUp Procedures in this manual to make sure the components of the
system are all on-line and to re-start the system.
--
                                     Monitoring & Balancing the System


Miscelanious Monitoring Commands

Below are several commands useful for displaying certain aspects of
the system.  These commands are covered briefly here because they are
likely to be used a great deal.  For further information on any of
these commands, see either the DCL Dictionary or use the on-line HELP
facility.


SHOW CPU/ALL

  Displays the current state of the processors in a VMS
  multiprocessing system.


SHOW DEFAULT

  Displays the current default device and directory names.   These
  defaults are applied whenever you omit a device and/or directory
  name from a file specification.


SHOW DEVICE/FULL device-name

  Gives specific information about a device.  If the device-name isn't
  specified, all devices will be displayed.


SHOW DEVICES/MOUNTED

  Displays all devices that currently have volumes mounted on them.
  All volumes should usually always be mounted.


SHOW ENTRY/FULL

  Used to display all information available about jobs.  If an entry#
  is specified after the command, it will only display information on
  that entry.  Displays the following information for each job: job
  name, user name, entry number, job status, full  file  specification
  associated  with each job, date and time of submission,  settings
  specified  for  the job, queue name, and queue type.   The /FULL
  qualifier overrides  the default brief listing format.


SHOW ERROR

  Displays the error count for all devices with error  counts  greater
  than 0.


SHOW MAGTAPE

  Displays the current  characteristics  and  status  of  a  specified
  magnetic tape device.


SHOW NETWORK

  Displays the addresses and names of all nodes that are currently
  accessible to  the  local  node.   The  SHOW  NETWORK  command  also
  displays  link  and  cost  relationships  between the local node and
  other nodes in the network.


SHOW PROCESS

  Displays  information  about a  process  and  subprocesses.   If no
  qualifier  is entered,  only  a  basic  subset  of  information  is
  displayed: the time, process terminal, user name and UIC, node name,
  process   name   and   process  identification,  priority,  default
  directory, and allocated devices.
--
                                     Monitoring & Balancing the System


Miscellaneous Monitoring Commands

SHOW PROCESS/CONTINUOUS/ID=pid

  Displays continuously updated information about a local process in a
  VAXcluster  environment.  The PID is the ID of the process you want
  to display.  It can be obtained with a SHOW USERS command.  You may
  not use the /CONTINUOS qualifier to display  information  about  a
  process  on  another  node  in  a VAXcluster environment.
  
  While the continuous display is running, you can press the V key  to
  display  a  map  of  the  pages  in the virtual address space of the
  process.
  
  Each character displayed in the map represents the type of page.  If
  the  current  program  counter (PC) is in the page, the page type is
  indicated by an at (@) sign.  Pages locked in the  working  set  are
  indicated by the letter L.  Global pages are indicated by the letter
  G.  Other valid pages  in  the  working  set  are  indicated  by  an
  asterisk (*).
  
  To terminate the continuous display, press the E key.  To return  to
  the original display, press the spacebar.


SHOW QUEUE

  Displays information about queues and jobs  that  are  currently  in
  queues.  Can be used to supplement the "Q" Hotkey to get specific
  and exact information when needed.


SHOW QUEUE/FORM

  Displays form names and numbers that are available on queues.


SHOW QUOTA

  Displays the current disk quota that is authorized  for  a  specific
  user on a specific disk.  This display includes a calculation of the
  amount of space available  and  the  amount  of  overdraft  that  is
  permitted.


SHOW SYSTEM

  Gives a general overview of the processes on the system.  Displays
  status  information  about  current  processes:  the  time, process
  name  and identification, processing state, priority, total process
  I/O, cumulative processor time used, cumulative page faults, amount
  of physical memory being used, and type of process.  Can be used to
  as a sort of "super" SHOW USERS.
  
  
SHOW USERS

  Shows all interactive processes currently running.  Also see the
  Hotkeys SU and WHO.  Adding a node qualifier will display all users
  on a particular node.  For example: SHOW USER/NODE=ADVAX2 will
  display all users on ADVAX2.
--
                                    Displaying & Modifying Queues/Jobs


Displaying Print Queues

To display the current contents of a print queue, use the following
command:

     SHOW/QUEUE/ALL queue_name
     
Where queue_name is the name of a valid print queue.  Examples:

     SHOW/QUEUE/ALL ACVAX1_MAIN_PRINT
     SHOW/QUEUE/ALL *PRINT*
     SHOW/QUEUE/ALL/FULL RPS

The /FULL qualifier shown above will give a multi-line detailed
display of every entry in the specified queue.  Specifying *PRINT* as
the queue_name will give a report for all queues with "PRINT" in their
names (or ALL print queues).

In addition to the DCL command above, you can use the Operator Hotkey
'Q' to get the same information (and more) with much less typing.  For
example, to get the same information as the above commands would show,
you would type:

     Q M         for all MAIN queues
     Q A         for ALL queues
     Q RPS FULL  for the RPS queue

The Q command has several other significant benefits.  One of the main
benefits is the FORM option.  For example, typing Q M F or Q M FORM,
the contents of the queue will be displayed arranged such that it is
easy to distinguish the form-codes of each entry.  To get the latest
help on the Q command, enter Q <cr>.  A one-page help screen will be
shown.  Another thing the Q hotkey is useful for is displaying
multiple queues at a time.  For example, Q DOC will display all DOC
queues - whether they are generic queues or printer queues.  Since a
print entry sitting in any one of the DOC queues will be printed on
the same printer, this command comes in very handy.



Starting & Stopping Print Queues

There are two basic ways to stop all jobs from printing on a
particular printer.  One is to either turn the printer off or off-
line.  The other way is to logically 'STOP' the printer.  The second
method is the preferred method of stopping a printer.  In the case of
printers where all files are spooled to a generic queue, turning the
printer off-line will NOT stop the printer's queue - just the printer.
In this case, a print job will be sent to the printer even though the
printer is off-line.  The job will sit there waiting to be printed
until either the printer is brought on-line or the job is re-queued or
aborted.  If, instead of turning the printer off-line, the printer's
queues were logically STOPPED, no jobs would be sent to the printer at
all until the queues were logically STARTED - even if the printer was
on-line.

The following command may be used to control the STARTING & STOPPING
of the various print queues.  The STOP commands will stop the
specified printer AFTER the job currently printing (if any) is
finished.

     STOP/QUEUE/NEXT queue_name
     START/QUEUE queue_name
     
For example:

     STOP/QUEUE/NEXT ADVAX1_DOC_PRINT
     STOP/QUEUE/NEXT ADVAX2_DOC_PRINT
     START/QUEUE ADVAX1_DOC_PRINT
     START/QUEUE ADVAX2_DOC_PRINT

The generic queues, such as DOC_PRINT, need not be stopped.  You'll
notice above that there are two queues for DOC_PRINT that are
stopped/started.  BOTH queues MUST be stopped if you don't want the
printer printing anything.  One controls the flow of jobs from ADVAX1
to the DOC_PRINT printer, the other controls the flow of jobs from
ADVAX2 to the DOC_PRINT printer.  BOTH paths must be stopped or
printing may occur.  Luckily, there's a hotkey for this....

     STOPQ DOC
     STARTQ DOC

STOPQ/STARTQ are hotkeys for starting/stopping queues.  The above
small two lines accomplish the same thing as the previous long four
lines did.  STOPQ/STARTQ know which queues associated with the printer
need to be stopped/started.  For further information on these hotkeys,
enter STOPQ<cr> or STARTQ<cr>.
--
                                    Displaying & Modifying Queues/Jobs


Changing Printer Forms

To change forms on a particular printer, six or so steps need to be
taken in a given order

     1.   Do NOT turn the printers off-line.
     2.   STOP ALL queues for that printer.
     3.   NOW turn the printers off-line.
     4.   Physically change the forms.
     5.   START all queues for that printer.
     6.   Align the forms if necessary.

This order needs to be followed or various unplesantries can arise.
For example, if the printer is turned off-line before the queue is
stopped, it is possible for the VAX to send a job to the printer
anyway.  Then when the new forms are loaded, the old job will print -
even though it's the wrong form.  This can also happen if only one of
the queues going to a particular printer is stopped.  The other queue
still thinks the printer has the old forms in it - and will continue
to send print jobs there.  Since there are many things that can go
wrong doing this, a special hotkey, FORM, was written to make things
easier.  The format for the FORM command is:

     FORM printer formcode

For example, to change the form-code on the ADVAX PTR1 printer, you
would do the following:

     FORM 1 AH <cr>   (then wait for any jobs currently printing to
finish)

     Printer ADVAX1_PTR1_PRINT stopped.
     Change paper and type 'go' to continue.

     : GO

     AH paper started on ADVAX1_PTR1_PRINT

FORM was designed to handle any form-code.  If new form-codes are
added at a later date, FORM will automatically recognize them.  The
DEFAULT form-code stands for standard 1-part wide green bar paper.
NARROW is the same as AK.  For more information on the FORM command,
type FORM<cr> from the console.

Remember, it is IMPORTANT that the forms not be physically changed and
that the printer not be turned off-line until AFTER the first command
is entered.  This is because a print job can be sent to a printer even
if the printer is off-line.  This is unlike some other computer
systems.  The only way a print job of a particular form-code can be
stopped from entering an available printer with the same formcode
assigned to it is if the printer is logically 'STOPPED'.  See the
STOPQ 'Hotkey' for information on how to do this.

     Note:  FORM can be entered without any parameters and it will
     prompt you for the required information.  Also, if any errors are
     made while typing the command (such as an unavailable formcode),
     it will inform you of the mistake and prompt for the corrected
     information.



Moving Queues

If it becomes necessary to move all the jobs from one queue to
another, the following command can be used:

     ASSIGN/MERGE destination_queue source_queue
     
For example:

     ASSIGN/MERGE ACVAX2_MAIN_PRINT ACVAX1_MAIN_PRINT
     ASSIGN/MERGE ACVAX1_MAIN_PRINT ACVAX2_MAIN_PRINT
     ASSIGN/MERGE CLUST_PRINT RPS
     ASSIGN/MERGE ADVAX1_DOC_PRINT DOC
--
                                    Displaying & Modifying Queues/Jobs


Reprinting Damaged Jobs

When a job printing becomes damaged, it may be aborted and started
over with the following command:

     STOP/QUEUE/REQUEUE queue_name

For example:

     STOP/QUEUE/REQUEUE ACVAX1_MAIN_PRINT
     STOP/QUEUE/REQUEUE ACVAX2_MAIN_PRINT
     STOP/QUEUE/REQUEUE RPS
     STOP/QUEUE/REQUEUE ADVAX1_DOC_PRINT

In each case above, the job is stopped from printing and placed back
in the queue.  When it starts printing again, it will start at the
beginning of the job.

If a damaged job has printed a significant amount already and you
don't want to reprint the whole thing, do the following:

     STOP/QUEUE/NEXT queue or use the STOP Hotkeys.
     Reset paper in printer.
     START/QUEUE/BACKWARD=n where "n" is the number of pages to skip
backwards.

     or...

     SET/ENTRY/PAGES=(###,###) entry#   This will print only the
specified pages.  Example:
                                   PAGES=(100,1000) will print pages
100 through 1000.

After that, issue a normal START/QUEUE command to start the queue
again.  For further information on SET/ENTRY, it is also mentioned in
the "Miscellaneous Commands" section of this document.



Aligning Standard Paper

The ALIGN hotkey will spool an alignment pattern to the specified
printer. This pattern may be used to help align standard green-bar
(DEFAULT) paper.

Formats:

     ALIGN queue-name #-of-copies priority
     ALIGN queue-name priority #-of-copies

Examples:

     ALIGN      (displays instructions on how to use ALIGN)
     ALIGN 1    (prints three copies to "printer #1" - three copies is
     default)
     ALIGN 2 5  (prints five copies to "printer #2")
     ALIGN 2 1  (prints one copy to "printer #2")
     ALIGN DOC 7    (prints seven copies to the DOC printer)
     ALIGN 2 1 P    (prints one copy to "printer #2" with priority)
     ALIGN 2 P 1    (prints one copy to "printer #2" with priority)

The "priority" option will print the alignment pattern before any
other jobs waiting in the print queues.
--
                                    Displaying & Modifying Queues/Jobs


Miscellaneous Queue Commands

Below is a list of several useful functions for changing the
characteristics and options associated with a print job.  All of these
use the SET ENTRY command.  On all of the commands, enter the entry #
of the job which you want to affect after the command itself.  The
entry # can be found with the "Q" Hotkeys.


SET ENTRY/AFTER=time ###   Delay printing job until after specified
time

  Requests that the specified job be held until after a specific time.
  If  the  specified  time  has  already passed, the job is queued for
  immediate processing.


SET ENTRY/COPIES=n ###     Change number of copies to print

  Specifies  the  number of copies to print.  The value of n can be
  any number from 1 to 255.  The number of copies can apply only to
  the entire print job.  You  cannot  use  this  qualifier  to
  specify  different numbers of copies for individual files within a
  multi-file job.


SET ENTRY/FORM=type ###    Change form type for job

  Changes the form associated with the print job.  To see which forms
  have been defined, use the SHOW QUEUE/FORM command. To find out
  which form  is  currently mounted  on a particular queue and which
  form is specified as that queue's default form, use the SHOW
  QUEUE/FULL command or the "Q" Hotkeys.


SET ENTRY/HOLD ###         Hold a job for later processing

  Controls  whether  the  job  is  to  be made available for immediate
  processing or held for processing later. If you specify  /HOLD,  the
  job is not released for processing until you enter SET ENTRY /NOHOLD
  or SET ENTRY/RELEASE.


SET ENTRY/OPERATOR="string" ###    Assign an operator message to a job

  Specifies a message string of up to 255 characters to be sent to the
  operator  just  before  the  print  job begins to print.


SET ENTRY/PAGES=([lowlim,]uplim) ###    Print selected portions of a
job

  Specifies  the  number  of pages to print for the specified job. You
  can use the /PAGES qualifier to print portions  of  long  files.  By
  default,  all pages of the file are printed. When you use the /PAGES
  qualifier with the SET ENTRY command, the qualifier can  apply  only
  to an entire job. You cannot use this qualifier to specify different
  numbers of pages  to  be  printed  for  individual  files  within  a
  multi-file job.
  
  The  lowlim  specifier refers to the first page of the file that you
  want to print. If you omit the lowlim specifier, the printing starts
  on the first page of the file.  The uplim specifier refers to the
  last page of  the  file  that  you want  to print. When you want to
  print to the end of the file but do not know how many  pages  are
  in  the  file,  use  two  consecutive quotation marks ("") as the
  uplim specifier.
  
  You  can  omit the parentheses when you specify only a value for the
  uplim specifier. For example, /PAGES=10 prints the first 10 pages of
  the  file;  /PAGES=(5,10)  prints  pages 5 through 10; /PAGES=(5,"")
  starts printing at page 5 and continues until the end of the file is
  reached.


SET ENTRY/PRIORITY=n ###   Set the priority of a job

  Specifies  the job-scheduling priority of the job. The value of n is
  an integer in the range of 0 through 255,  where  0  is  the  lowest
  priority and 255 is the highest.


SET ENTRY/RELEASE ###      Release a job that is on hold

  Releases  for  processing jobs submitted with the /HOLD qualifier or
  /AFTER qualifier, jobs held in a queue with the  /RETAIN  qualifier.
--
                                                    Initializing Tapes


The command to initialize a tape is:  INITIALIZE drive#:tape_label

     Example:  INIT MUA0: FUL_01 /DENSITY=6250         ACVAX ONLY
               INIT $1$MUA1: FUL_01 /DENSITY=6250      ADVAX ONLY

The initialize command may be abbreviated to INIT.  If this command is
used to initialize a tape that already has data on it, a "file access
is nonblank" error will result.  Below is a "Hotkey" for initializing
a tape that is nonblank and it's full VMS equivalent.

   Hotkey:     BLANK drive#: label
    VMS:       INIT/OVERRIDE=(ACCESSIBILITY,EXPIRATION) drive#: label

     Example:  BLANK MUA0: FUL_01  ACVAX example
     Example:  BLANK $1$MUA0: FUL_01    ADVAX example

     Example:  INIT/OVER=(ACCESS,EXPIRATION)/DENSITY=6250 MUA0: FUL_01
     Example:  INIT/OVER=(ACCESS,EXPIRATION)/DENSITY=6250 $1$MUA0:
FUL_01

Each command above assumes that a tape with a write ring is mounted
and on-line in the drive# specified.  The space between the colon,
":", and the tape label must be there for the commands to execute
properly.

The c2.BLANK command may be used with both blank and nonblank tapes
alike so it is possible to use it exclusively.


If you wish to verify the initialization process to make sure that the
tape label is correct, do the following:

     MOUNT/OVERIDE=ID MUA0:        The system will then display that
the tape with tape_label was mounted.
     DISMOUNT MUA0:           Be sure to use $1$MUA0 for the ADVAX
cluster.

If you wish to mount a tape from another computer system, or if you're
not sure of its origin, do the following:

     MOUNT/FOREIGN MUA0:      Be sure to use $1$MUA0 or $1$MUA1 for
the ADVAX tape drives.
     ...                      Do whatever you want to with it
here........
     ...
     DISMOUNT MUA0:           Dismount the tape when done.


The VAXBAK backup utility uses the following labels for the various
types of backups should you need to initialize any blank tapes.  The
nn in each case is a number between 01 and 99.  The tapes go in
sequence from 01 through however many tapes are needed for the backup.

     DLY_nn Used on all the DAILY backups.
     FUL_nn Used for all tapes on WEEKLY and MONTHLY backups.
     USQ_nn Used for the USER_DISK portion of the QUARTERLY and YEARLY
     backups.
     SYQ_nn Used for the SYSTEM portion of the QUARTERLY and YEARLY
     backups.
     APQ_nn Used for the APPLICATION portion of the QUARTERLY and
     YEARLY backups.
--
                                            Electronic Mail on the VAX


Your Electronic Mail Address

If your VAX username is JSMITH, then use:

     local address:      JSMITH
     BITNET:             JSMITH@CSUPOMONA.EDU
     INTERNET:           JSMITH@CSUPOMONA.EDU
     DECNET (ACVAX):     ACVAX1::JSMITH
     DECNET (ADVAX):     ADVAX1::JSMITH



Sending Mail to Other Addresses

To send mail to a local user of the VAX, simply use his username:

     Example:  CVADS002

If the user is on a machine DECNet-ed to the VAX, use NODE::USERNAME
to reach him:

     Examples: ADVAX2::BFRANK
               ACVAX2::CVADR001

If you're sending BITNET or INTERNET mail, enclose the address in
WINS%" "

     Examples: WINS%"ESKPIE@ALASKA.EDU"
               WINS%"RSNOOTY@GUANO.HARVARD.EDU"

Some other mailer hints:

  y  Case can matter: Some machines have case sensitive userids, so
     watch capitalization.
  
  y  Specify explicit message routings (if needed) using percent
     signs. Mail to WINS%"ZIGGY%XYZ%JFK@LMN" is first sent to site
     LMN, which strips its address (@LMN) and changes the next % to an
     @ before sending the message on to JFK, where the process
     iterates.



The Basics of Using Mail

     MAIL> DIR           <-- What messages do I have?
     
     MAIL> <return>      <-- Read a message
     
     MAIL> S             <-- Send a message
     
     MAIL> R             <-- Reply to a message
     
     MAIL> PRINT         <-- Print message when you exit MAIL
     
     MAIL> 4             <-- Re-read message #4
     MAIL> EXTRACT TEMP.LIS   <-- Put it in TEMP.LIS
     MAIL> EXIT          <-- Leave MAIL
     $ PRINT TEMP.LIS    <-- Print the message
     
     MAIL> DELETE 3      <-- Delete message #3
     
     MAIL> S filename.ext     <-- Send this file
     
     MAIL> READ/NEW      <-- read new messages received while already
     in MAIL
     
     MAIL> HELP          <-- Get help on MAIL
     
     MAIL> EXIT          <-- Get out of MAIL
--
                                            Electronic Mail on the VAX


Some More Advanced Mail Features

     MAIL> REPLY/EXTRACT      <-- Include a copy of their message in
     your reply
     
     MAIL> S
     To:    @CLASS.DIS        <-- Send mail to each ID in the file
     CLASS.DIS
     Subj:  Assignment 2
     Assignment 2 is now due at 5 PM this Friday.
     <CTRL-Z>
     
     MAIL> 7                  <-- Review message 7
     MAIL> F                  <-- Forward it...
     To:   AQUINLAN           <-- to AQUINLAN...
     Subj: Handle this!       <-- with instructions
     MAIL> D                  <-- then delete it...
     
     MAIL> 5                  <-- Review message 5
     MAIL> MOVE CLASS         <-- Move it to CLASS
     Y                        <-- OK the new folder
     
     MAIL> DIR/FOLDER         <-- What folders do I have?
     MAIL> SELECT COMMITTEE   <-- Choose COMMITTEE
     
     MAIL> DELETE 3:8         <-- Delete messages 3 through 8
     
     MAIL> COMPRESS           <-- Compress existing mailbox
     MAIL> EX                 <-- Get out of mail
     $ DELETE MAIL.OLD.*      <-- Delete old mailbox
     
     MAIL> SET MAIL [.MBOX]   <-- Hide mail$...files
     
     MAIL> SET FORWARD JJONES <-- Forward my mail to JJONES
     MAIL> SET FORWARD WINS%"""WAWA@U.HAWAII.EDU"""
     
     MAIL> SET COPY SEND,FORWARD,REPLY  <-- Keep a carbon of every
     message you produce
     
     MAIL> SET P "TOM JONES"  <-- Identify yourself (permanently) with
     this info on every message
     
     $ MAIL :== MAIL/EDIT     <-- make mail use EDT



Sending Mail to Other Networks

   y AMERICA ONLINE:  To send a message to America Online users, such
     as MichaelPye, use the format:
   
    WINS%"accountname@aol.com"
    WINS%"MichaelPye@aol.com"
   
   y COMPUSERVE EASYPLEX:  Assume you want to send mail to a
     Compuserve EasyPlex user such as id 70009,1484  You'd use the VAX
     mail address:
   
    WINS%"70009.1484@compuserve.Com"
   
    Notice that the comma normally separating the two-number
     Compuserve ID MUST be converted to a period. Also be aware that
     EasyPlex messages are limited to a maximum of 50,000 characters.
   
   y MCI MAIL:  You can send VAX mail to an MCI Mail user with any of
     the three following address formats:
   
    WINS%"accountname@mcimail.Com"
    WINS%"mci_id@mcimail.Com"
    WINS%"full_user_name@mcimail.Com"
   
   y FIDONET MAIL To send mail to John Smith at Fido node 1:129/87.2,
     use the VAX address:
   
    WINS%"John.Smith@p2.f87.n129.z1.fidonet.org"
--
                                          FTP (File Transfer Protocol)


Using FTP

FTP (File Transfer Protocol) is a facility that will let you use the
VAX to retrieve files from remote computer systems.

To get at files on a remote system via FTP, you need a username on the
remote system, or the remote system needs to have created a special
anonymous "guest" account.

One popular system that has anonymous FTP is the Kermit communication
package support machine at Columbia in New York City. To log onto the
Kermit machine at Columbia, enter:

     $ FTP WATSUN.CC.COLUMBIA.EDU  <-- Columbia!
     *LOGIN anonymous           <-- Login as anonymous...note
     lowercase!!!
     *Password: JSMITH          <-- Send your username

At that point you're ready retrieve a file:

     *CD kermit                 <-- Move into the kermit dir
     *DIR                       <-- What files are out there?
     *GET read.me               <-- Get a file
     *CLOSE                     <-- Close the connection
     *QUIT                      <-- Exit FTP -- You're done!

The file read.me is now in your VAX directory!

To just type a file to your screen, use:

     *GET filename TT:          <-- "get" to the terminal

To get binary format files:

     *BINARY                    <-- set binary mode
     *QUOTE "TYPE L 8"          <-- demand eight bit words
     *GET filename              <-- get the file

When you're done transferring binaries, use the following to change
back to text mode:

     *ASCII

To get multiple files with one command use:

     *MGET XYZ.*

This initiates retrieval of all files called XYZ.anything in the
current remote directory.  Reply with a lowercase y to accept each
file when asked. If you want to just accept everything without the
lowercase y's being needed, say:

     *NOINTERACTIVE

before issuing the MGET.

Automating your FTP login process If you routinely FTP to a particular
host, you may want to create a file called FTPLOGIN in your root
directory to "semiautomate" this process. Each line in this file
should contain the IP address of the system you're connecting to, your
username on that system, a dash (representing your password) and an
optional  account number (if used). NEVER replace the dash
representing your password with a REAL password!
--
                                          FTP (File Transfer Protocol)


When Do I "GET" And When Do I "PUT"?

Realize that VAX FTPing can be done with the VAX acting as either a
CLIENT or as a SERVER.

If you start FTP on the ACVAX and thereby connect from it to the other
remote system, the ACVAX will be running an FTP CLIENT. You'll GET
files from the other system to the ACVAX (or, conversely, you'll PUT
them from the ACVAX to the other system).

If you start FTP on the other system and connect from it back to the
ACVAX, the ACVAX will be running an FTP SERVER. You'll PUT files from
the other system to the ACVAX (or, conversely, you'll GET them on the
other system from the ACVAX).



Nationwide List of Anonymous FTP Sites

     $ PRINT USER_DISK:[OPR.OPERATOR.COMMANDS]FTP.SITES

NOTE: To obtain the absolutely most recent edition of this file,
retrieve (via anonymous FTP, of course!) the file ftp.list.Z from the
pub/unix-misc directory on PILOT.NJIN.NET and then UNCOMPRESS it.  To
avoid having the VAX mangle
the filename, you can specify what you want it to be called when you
get it:

     * GET ftp.list.Z ftp.list_Z

As the VAX is not fond of more than one period in a filename, it's a
good idea to follow this practice.
--
                                                           USENET News


What is USENET News?

USENET NEWS is a unique information sharing resource quite distinct
from mail (and from mailing lists or LISTSERVers).

The best way to understand NEWS is to consider what happens when you
send mail to a "conventional" mailing list for re-distribution:
essentially, an individual copy of your mail message is re-sent to
every list subscriber.

This means that if a given site has "n" subscribers to a particular
list, that site will receive (and the network will carry) "n" mail
messages every time someone posts something to the list.

NEWS uses a different philosophy to disseminating information. NEWS
directly attacks the question, "Why should a site (potentially)
receive a dozen identical copies of a given message? Why not provide a
single central copy of the message, and let everybody simply look at
that local 'master' copy, instead?"

This may sound a lot like the microcomputer bulletin boards you may be
familiar with, and it is quite similar, but NEWS has a unique twist
Messages posted via NEWS are generally transparently "propagated" to
other NEWS sites across the United States (and sometimes overseas).

Because of the diverse nature of individual NEWS users interests,
postings within NEWS are organized hierarchically by subject. Local
NEWS administrators determine which newsgroups are carried, and
sometimes a local NEWS administrator may elect not to carry a
particular group that is of little interest to local users. On the
other hand, a site may also create "local-only" newsgroups; because
those newsgroups deal with strictly local topics, they are not
propagated to other NEWS sites.



Reading USENET and Other News

A number of USENET and other newsgroups are accessible to VAX users
via a full screen (VT100) news reader. Invoke NEWS by saying:

     $ NNEWS                  <-- Start Network NEWS

Use your cursor keys to move down to a topic of interest, then hit

Newsgroups: comp.os.vms