|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: C T
Length: 19008 (0x4a40)
Types: TextFile
Names: »CI_DOC«
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS
└─⟦91c658230⟧ »DATA«
└─⟦458657fb6⟧
└─⟦a5bbbb819⟧
└─⟦this⟧
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
└─⟦fc9b38f02⟧ »DATA«
└─⟦9b46a407a⟧
└─⟦eec0a994f⟧
└─⟦this⟧
System Console Command Interpreter
Introduction
The console command interpreter (CI) is a user interfce for
the R1000 system console. It allows an operator to run
environment programs, such as Backup and Archive, from the
system console, eliminating the need to maintain both an
Environment console and the system console in an operations
center. The other functions of the system console (EEDB and
Kernel) are not changed.
The purpose of the CI is to allow the system operator to
perform common system maintenance functions at the console.
It is not intended for software development.
Overview
To use the CI you must first get the proper prompt on the
system console. To do this, [CONTROL][Z] is used to cycle the
various prompts on the system console (EEDB and Kernel are 2
of the most common). If you haven't logged into the CI yet, the
following should appear which indicates you are talking to
the CI :
====> job XXX <====
username:
where XXX is a number identifying the CI job, which will vary.
From here you log into the Environment supplying a username,
password, and optionally a session name.@foot(If a session name
is not provided, then it will default to S_1.)
====> job XXX <====
username: operator
password:
session: baily
The password will not be echoed to increase security. At this
point the CI will output some messages and the command line
prompt will appear :
====> job XXX <====
command:
At this point you can type in any Environment command and the
CI will execute it. For example :
====> job XXX <====
command: what.time
====> job NNN <====
July 4, 1987 at 10:23:21 PM
====> job XXX <====
command:
Notice that the banner lines have different job numbers. This
is due to the Environment running each command as a separate
job with its own input and output stream.
When finished, enter the "QUIT" command to logoff.
====> job XXX <====
command: quit
The CI will again write some messages to the console, and once
again prompt you for a username.
If you don't respond to the "command:" prompt within a certain
amount of time@foot(This is configurable when the CI program
is run, and is generally set to 60 seconds.) the CI will quit
automatically, effectively logging you off.
The CI can execute user-written programs in the same way as
Environment commands. Just enter a call to the program, with
the appropriate arguments.
Editing Functions
Input to the CI can be edited using the following keys :
[DELETE] - Erase a character to the left.
[CONTROL][H]
[CONTROL][U] - Erase the current line.
[CONTROL][A] - Replace current line with previously executed
[CONTROL][B] line.
Commands
Introduction
The routines located in !Tools.CI.<revn>_spec.Units.Commands are
designed to provide a clean and simple interface for some of
the most commonly used system management commands of the
Rational Environment. Specifically, these commands are
intended to be used by operations personnel via the system
console Environment interface. This line oriented command
interface allows execution of Environment commands without
requiring knowledge of the Environment's window based
interface.
By logging in via the system console, the user is presented
with a command line intrepreter simular to the majority of
other systems on the market today. Commands are entered on a
single line, with the <RETURN> key causing execution of the
command entered.
Customization
The routines contained in !Users.Operator.Commands should
follow a simplistic interface doctrine, requiring minimal to
no parameters, with defaults supplied when possible.
The standard base routines are procedures, generally doing no
more than calling the Environment package which performs the
desired operation. The idea is to help an operator who
generally has no knowledge of Ada and no training in the basic
workings of the Rational Environment. Since most operations
personnel are familar with line oriented command interfaces,
the routines are designed to provide this.
Supplied Commands
Backup
======
Execute.Full_Backup;
Performs a Full system backup.
Example:
command: Execute.Full_Backup;
====>> job 211 <<====
87/03/18 11:23:40 --- The backup tape's Volid is AGLKRZ.
A mount request has been issued and is awaiting the operator.
.
.
.
Execute.Primary_Backup;
Performs a Primary system backup. Primaries save all changed
state since the last Full backup.
Example:
command: Execute.Primary_Backup;
====>> job 211 <<====
87/03/18 11:23:40 --- The backup tape's Volid is AGLKRZ.
A mount request has been issued and is awaiting the operator.
.
.
.
Execute.Secondary_Backup;
Performs a Secondary system backup. Secondaries save all
changed state since the last Primary backup.
Example:
command: Execute.Secondary_Backup;
====>> job 211 <<====
87/03/18 11:23:40 --- The backup tape's Volid is AGLKRZ.
A mount request has been issued and is awaiting the operator.
.
.
.
Show.Backups;
Displays information about the last 10 backups, showing the
Date and time it was performed, the kind (Full, Primary,
Secondary) and the volume ID of the tape set.
Example:
command: Show.Backups;
====>> job 212 <<====
Incremental Backup 9 Taken At 17-MAR-87 09:40:10 Based On ....
Blue Tape Vol Name => BACKUP BLUE TAPE, 17-MAR-87 09:40:10 3
Blue Tape Vol Id => 002205
Data Tape Vol Name => BACKUP, 17-MAR-87 09:40:10
Data Tape Vol Id => AGKKOF
Full Backup 8 Taken At 14-MAR-87 15:13:12
Blue Tape Vol Name => BACKUP BLUE TAPE, 14-MAR-87 15:13:12 3
Blue Tape Vol Id => 007603
Data Tape Vol Name => BACKUP, 14-MAR-87 15:13:12
Data Tape Vol Id => AFRXFU
.
.
.
Archive
=======
Execute.Save (Object : String);
Performs an Archive.Save of the object(s) specified.
Example:
command: Execute.Save("!Users.SMP");
87/03/18 11:12:43 --- [Archive.Save rev 361, objects => "!Users.SMP",
87/03/18 11:12:43 ... options => "R1000", device => "MACHINE.DEVICES.TAPE_0",
87/03/18 11:12:43 ... response => "<PROFILE>"].
.
.
.
Execute.Restore;
Performs an Archive.Restore operation, restoring only those
objects that have changed, and setting the access control list
for the object to that saved with the Save routine.
Example:
command: Execute.Restore;
87/03/18 11:28:43 --- [Archive.Restore rev 361, objects => "??", use_prefix
87/03/18 11:28:43 ... => "*", for_prefix => "*", options => "R1000
87/03/18 11:28:43 ... changed_objects replace object_acl..
87/03/18 11:28:43 ... default_acl=archived", device => "MACHINE.DEVICES.
87/03/18 11:28:43 ... TAPE_0", response => "<PROFILE>"].
.
.
.
Printer Queue
=============
Execute.Disable_Queue (Device : String);
Disables the print queue for the specified device. Device is
the logical device which can be determined using the
Show.Queues command.
Example:
command: Execute.Disable_Queue("Terminal_31");
Execute.Enable_Queue (Device : String := "all");
Enable the print queue for the specified device. Device is
the logical device which can be determined using the
Show.Queues command.
Example:
command: Execute.Enable_Queue("Terminal_31");
command: Execute.Enable_Queue; -- Enables all known queues
Execute.Cancel_Request (Id : Natural);
Cancels a print request. The Id of the print request can be
determined using the Show.Requests command.
Example:
command: Execute.Cancel_Request(12);
Show.Queues (Class : String := "all");
Displays a print queue, giving its state and the logical
device it is assigned to. The default "all" specifies to show
all regiestered classes of print queues.
Example:
command: Show.Queues; -- Displays all known queues
====>> job 231 <<====
Device Protocol State Classes
=========== ======== ======== =======
TERMINAL_32 XON_XOFF Disabled LASER
TERMINAL_47 XON_XOFF Disabled LP
command: Show.Queues("LP");
====>> job 211 <<====
Device Protocol State Classes
=========== ======== ======== =======
TERMINAL_47 XON_XOFF Disabled LP
Show.Requests (Class : String := "all");
Displays all outstanding requests for a given class of print
queues. the defautl "all" specifies to show all requests on
all registered classes of print queues.
Example:
command: Show.Requests;
====>> job 211 <<====
ID Time State Class User Object
== ===== ====== ===== ==== ===============================
3 12:04 Queued LASER SMP !COMMANDS.SHOW'V(2)
1 11:38 Queued LP SMP !USERS.SMP.COMMANDS.EXECUTE'V(2)
2 11:39 Queued LP SMP !USERS.SMP.SHOW'V(2)
command: Show.Requests("LP");
====>> job 211 <<====
ID Time State Class User Object
== ===== ====== ===== ==== ===============================
1 11:38 Queued LP SMP !EXECUTE'V(2)
2 11:39 Queued LP SMP !OPERATOR_COMMANDS.SHOW'V(2)
Shutdown
========
Execute.Schedule_Shutdown (At_Time : String := "23:59");
Schedules a system shutdown to be done at the given time. Any
valid date/time value can be supplied. Date should be of the
form YR/MO/DA, followed by military time of the form
HR:MIN:SEC. The date is optional, in which case the current
date is used. A time value which is less than the current
time (ie a past time) will cause the system to shutdown
immediately.
Example:
command: Execute.Schedule_Shutdown;
command: Execute.Schedule_Shutdown("10:34 pm");
command: Execute.Schedule_Shutdown("87/09/12 12:00");
Shutdown Interval is 11:51:00; Archive_Enabled = FALSE
Why do you want to stop the machine?
Terminate input with Enter. ? for help.
.
.
.
Execute.Cancel_Shutdown;
Cancel a previously scheduled shutdown.
Example:
command: Execute.Cancel_Shutdown;
====>> job 213 <<====
87/03/18 12:06:57 --- Shutdown has been canceled.
Show.Shutdown;
Displays the next scheduled shutdown time.
Example:
command: Show.Shutdown;
====>> job 233 <<====
Shutdown Interval is 11:51:00; Archive_Enabled = FALSE
Terminal Related
================
Execute.Force_Logoff (Line : Terminal.Port);
Causes the user logged onto the specified line to be logged
off. All uncommitted images are saved.
Example:
command: Execute.Force_Logoff(32);
Execute.Enable_Login (Line : Terminal.Port);
Enables the specified line for login.
Example:
command: Execute.Enable_Login(32);
Execute.Disable_Login (Line : Terminal.Port);
Disables the specified line for login. If a user is currently
logged in and using the line, the line will be disabled only
after the user has logged off.
Example:
command: Execute.Disable_Login(32);
Show.Settings (Line : Terminal.Port := 0);
Displays information for the specified terminal.
Example:
command: Show.Settings(32);
====>> job 211 <<====
Terminal Settings for Port 32
-----------------------------
Terminal Type = CIT500R
Input Baud Rate = BAUD_9600
Output Baud Rate = BAUD_9600
Parity = NONE
Stop_Bits = 2
Char_Size = CHAR_8
Flow Control for Transmit Data = NONE
Flow Control for Receive Data = NONE
Disconnect_On_Disconnect = FALSE
Disconnect_On_Logoff = FALSE
Disconnect_On_Failed_Login = FALSE
Log_Failed_Logins = FALSE
Login_Disabled = FALSE
Miscellaneous
=============
Execute.Send_Message (M : String; User : String := "<ALL>");
Sends a message M to the specified user. If the default user
<ALL> is used, then the message is sent to all users currently
logged into the system.
Examples:
command: Execute.Send_Message("Testing");
command: Execute.Send_Message("Hi","SMP");
Execute.Set_Time (T : String);
Sets the system time to the specified time. The time value T
is of the form YR/MO/DA HR:MIN:SEC.
Example:
command: Execute.Set_Time("87/09/12 15:08:34");
Show.Time;
Displays the current system time.
Example:
command: Show.Time;
====>> job 211 <<====
March 18, 1987 at 12:13:29 PM
Execute.Snapshot;
Performs a system snapshot immediately.
Example:
command: Execute.Snapshot;
====>> job 211 <<====
87/03/18 12:14:06 +++ Running Snapshot daemon.
Show.Users;
Displays information about the currently logged in users and
the jobs they are running.
Example:
command: Show.Users;
====>> job 211 <<====
USER SESSION LINE TIME I_O_COUNT
===== ======= ==== ========= ============
BLB S_1 240 5/20:55 3756/148595
GZC_1 S_1 241 30:44.307 62110/951027
JLS S_1 248 1:28:56 1798/67146
SMP S_1 247 2:57:49 62150/977550
Show.Daily_Message;
Displays the Daily Message file.
Example:
command: Show.Daily_Message;
Show.Disk_Space;
Displays information for all disk volumes known to the system.
Example:
command: Show.Disk_Space;
====>> job 211 <<====
Volume Capacity Available Used % Free
====== ======== ========= ====== ======
1 369120 264059 105061 71
2 391680 263908 127772 67
3 391680 265421 126259 67
4 401280 246396 154884 61
total 1553760 1039784 513976 66
Show.Help;
Displays help information for these commands.
Example:
command: Show.Help;
Def (New_Context : String := "");
Changes the current context to the new context. This command
is imbedded in the CI. The CI, like all jobs, has a current
context. This is an object (usually a library, but can be a
file or an Ada object) in whose context names are resolved.
The initial value is your home library. Def changes the
context of the CI itself, not a command job. This changes the
context in which subsequent commands are executed.
If the null string is used, the current context is displayed.
Example:
command: Def("!");
====>> job 211 <<====
87/03/18 12:14:06 ::: [Library.Context ("!", PERSEVERE);].
87/03/18 12:14:06 +++ Current context is now !
87/03/18 12:14:06 ::: [End of Library.Context command --- No errors]
Help;
Displays a small help menu of commands for the CI.
Quit;
Terminate the session, logging the user off. After the user
has been logged off, the CI will again prompt for a username.
Typ (Object : String := "");
Displays the image of the given object. The name may contain
wildcards, in which case multiple objects may be displayed.
Installation
The CI is distributed as an Environment program, located in
the sybsystem !Tools.CI. The most recent version (view) of
this subsystem should always be used. To get the CI running,
the following setup must be done to the current release
library (!Machine.Release.Current) :
- Current.Activity must include an entry for !Tools.CI
specifying the most recent spec and load view. This
can be done by executing the Activity.Add procedure.
- Current.Commands should include links to :
!Tools.CI.<revn>.Units.Commands.@
These are command programs intended for use by the CI
users. This can be done by executing the Links.Add
procedure.
To run the CI, you must execute the CI.Login procedure. This
is ordinarily done from the Initialize procedure which is
executed when the system boots, or can be done by the
following command :
Program.Run_Job(Program.Current("!Tools.CI", "CI.Login",
Activity => "!Machine.Release.Current.Activity"),
Context => "!Machine.Error_Logs",
Options => "Output=!Machine.Error_Logs.CI_Output" &
",Error=!Machine.Error_Logs.CI_Error");
Miscellaneous
Each input line to the CI is treated as an Ada program, so
multiple environment commands can be entered on a single line,
separated by semicolons, and will be executed in the sequence
entered. In general, any valid ada statement (conditionals,
loops, etc) can be be used, limited only by the line length
(256 characters). The "DEF", "QUIT", and "HELP" commands are
special exceptions and should only be entered on a line by
themselves.
[CONTROL][G] will put the currently executing program into
background mode and allow further commands to be executed.
Each program running in background, as with the currently
executing program, will be identified with a job id in its
header. Use of [CONTROL][Z] allows selection of the various
jobs running.
Restrictions and Limitations
The CI requires the Delta release of the Rational Environment
for correct operation.
Commands which use Object Editors will not work via the system
console (for example What.Jobs, Links.Edit).
Commands which use Window I/O will not work via the system
console.
Maximum line length is 256 characters.