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 - 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.