Difference between revisions of "Odbedit"

From MidasWiki
Jump to navigation Jump to search
Line 21: Line 21:
 
The <span style="color:darkcyan;">''odbedit''</span>  commands and mode of operation are described fully in the following sections.
 
The <span style="color:darkcyan;">''odbedit''</span>  commands and mode of operation are described fully in the following sections.
  
=== Starting odbedit utility ===
+
== Starting odbedit utility ==
  
==== Arguments ====
 
:[ [[Common Parameters to MIDAS Utilities |-h hostname]] ]
 
:[ [[Common Parameters to MIDAS Utilities|-e exptname]] ]
 
: [-c command ] :Perform a single command
 
: [-c @commandFile ] :Perform commands in sequence found in the commandFile. Can be used to perform operations in script files. See examples.
 
:    [-s size ] : size in bytes (for ODB creation). Specify the size of the ODB file to be  created when no shared file is present in the experiment directory (default 128KB).
 
:    [-d ODB Subtree] :Specify the initial entry ODB path to go to.
 
:    [-g] debug
 
:    [-C ] connect to corrupted ODB
 
  
==== Usage ====  
+
Arguments
 +
    [ [[Common Parameters to MIDAS Utilities #Midas host (hostname)|-h hostname]] ]
 +
    [ [[Common Parameters to MIDAS Utilities #Midas experiment (exptname)|-e exptname]] ]
 +
    [-c command ]      : Perform a single command. See [[#Using an external command|using an external command]]
 +
    [-c @commandFile ] : Perform commands in sequence found in the commandFile. See [[#Using an external command file|using an external command file]]
 +
    [-s size ]        : Size in bytes (for ODB creation). See [[#Creating the ODB|creating the ODB]].
 +
    [-d ODB Subtree]  : Specify the initial entry ODB path to go to. See [[#Specifying the initial ODB entry path|Specifying the ODB entry path]].
 +
    [-g]              : Debug
 +
    [-C ]              : Connect to corrupted ODB
 +
Usage
 +
    >odbedit
 +
 
 +
== Command Line Interpreter ==
 
ODBedit has a simple command line interface with command line editing similar to the UNIX tcsh shell.  
 
ODBedit has a simple command line interface with command line editing similar to the UNIX tcsh shell.  
 
The following edit keys are implemented:
 
The following edit keys are implemented:
  
: [Backspace] Erase the character left from cursor
+
[Backspace]         Erase the character left from cursor
:[Delete/Ctrl-D] Erase the character under cursor
+
[Delete/Ctrl-D]     Erase the character under cursor
:[Ctrl-W/Ctrl-U] Erase the current line
+
[Ctrl-W/Ctrl-U]     Erase the current line
:[Ctrl-K] Erase the line from cursor to end
+
[Ctrl-K]             Erase the line from cursor to end
:    [Left arrow/Ctrl-B] Move cursor left
+
[Left arrow/Ctrl-B] Move cursor left
:    [Right arrow/Ctrl-F] Move cursor right
+
[Right arrow/Ctrl-F] Move cursor right
:    [Home/Ctrl-A] Move cursor to beginning of line
+
[Home/Ctrl-A]       Move cursor to beginning of line
:    [End/Ctrl-E] Move cursor to end of line
+
[End/Ctrl-E]         Move cursor to end of line
:    [Up arrow/Ctrl-P] Recall previous command
+
[Up arrow/Ctrl-P]   Recall previous command
:    [Down arrow/Ctrl-N] Recall next command
+
[Down arrow/Ctrl-N] Recall next command
:    [Ctrl-F] Find most recent command which starts with current line
+
[Ctrl-F]             Find most recent command which starts with current line
:    [Tab/Ctrl-I] Complete directory. The command ls /Sy <tab> yields to ls /System.
+
[Tab/Ctrl-I]         Complete the path. The command ls /Sy <tab> becomes ls /System.
 
 
 
 
Notes
 
 
 
* When <span style="color:darkcyan;">''odbedit''</span>  is started for the first time, if there is no existing ODB for the experiment (given by the environment variable
 
[[MIDAS_EXPT_NAME]] or overruled by the -e argument), the ODB will be created with the default size of 1183808 blocks.
 
  
  
=== odbedit command list ===
+
==== Creating the ODB ====
[[odbedit command list]]
 
  
Running odbedit and issuing the command "help" displays the list of commands:
+
When <span style="color:darkcyan;">''odbedit''</span>  is started for the first time, if there is no existing ODB for the experiment (see [[Common Parameters to MIDAS Utilities #Midas experiment (exptname)]])
 +
the ODB will be created with the default size of 128KB, unless overruled by the '''-s <size>''' argument.
  
$ odbedit
 
[local:pol:S]/>help
 
  
Database commands ([] are options, <> are placeholders):
+
====  Using an external command ====
 
 
alarm                  - reset all alarms
 
cd <dir>                - change current directory
 
chat                    - enter chat mode
 
chmod <mode> <key>      - change access mode of a key
 
                          1=read | 2=write | 4=delete
 
cleanup [client] [-f]  - delete hanging clients [force]
 
copy <src> <dest>      - copy a subtree to a new location
 
create <type> <key>    - create a key of a certain type
 
create <type> <key>[n]  - create an array of size [n]
 
del/rm [-l] [-f] <key>  - delete a key and its subkeys
 
  -l                      follow links
 
  -f                      force deletion without asking
 
exec <key>/<cmd>        - execute shell command (stored in key) on server
 
export <key> <filename> - export key into ASCII file
 
find <pattern>          - find a key with wildcard pattern
 
help/? [command]        - print this help [for a specific command]
 
hi [analyzer] [id]      - tell analyzer to clear histos
 
import <filename> [key] - import ASCII file into string key
 
n <source> <linkname>  - create a link to <source> key
 
load <file>            - load database from .ODB file at current position
 
ls/dir [-lhvrp] [<pat>] - show database entries which match pattern
 
  -l                      detailed info
 
  -h                      hex format
 
  -v                      only value
 
  -r                      show database entries recursively
 
  -p                      pause between screens
 
make [analyzer name]    - create experim.h
 
mem [-v]                - show memeory usage [verbose]
 
mkdir <subdir>          - make new <subdir>
 
move <key> [top/bottom/[n]] - move key to position in keylist
 
msg [type] [user] <msg> - compose user message
 
old [n]                - display old n messages
 
passwd                  - change MIDAS password
 
pause                  - pause current run
 
pwd                    - show current directory
 
resume                  - resume current run
 
rename <old> <new>      - rename key
 
rewind [channel]        - rewind tapes in logger
 
save [-c -s -x -cs] <file>  - save database at current position
 
                          in ASCII format
 
  -c                      as a C structure
 
  -s                      as a #define'd string
 
  -x                      as a XML file
 
set <key> <value>      - set the value of a key
 
set <key>[i] <value>    - set the value of index i
 
set <key>[*] <value>    - set the value of all indices of a key
 
set <key>[i..j] <value> - set the value of all indices i..j
 
scl [-w]                - show all active clients [with watchdog info]
 
shutdown <client>/all  - shutdown individual or all clients
 
sor                    - show open records in current subtree
 
start [number][now][-v] - start a run [with a specific number],
 
                          [now] w/o asking parameters, [-v] debug output
 
trunc <key> <index>    - truncate key to [index] values
 
ver                    - show MIDAS library version
 
webpasswd              - change WWW password for [[mhttpd]]
 
wait <key>              - wait for key to be modified
 
quit/exit              - exit
 
 
 
 
 
===  Using the external command ( -c argument) ===
 
  
 
In the simplest case, a single <span style="color:darkcyan;">''odbedit''</span>  command can be entered on the command line using the ''-c'' argument, e.g.
 
In the simplest case, a single <span style="color:darkcyan;">''odbedit''</span>  command can be entered on the command line using the ''-c'' argument, e.g.
Line 136: Line 70:
 
  Run #401 stopped
 
  Run #401 stopped
  
==== External command using a file ( -c &commandFile) ====
+
==== Using an external command file ====
 
Perform commands in sequence found in the specified commandFile e.g.
 
Perform commands in sequence found in the specified commandFile e.g.
 
  [pol@isdaq01 pol]$ odbedit ''-d'' /Equipment/TDC/Settings/ ''-c'' @testfile.com  
 
  [pol@isdaq01 pol]$ odbedit ''-d'' /Equipment/TDC/Settings/ ''-c'' @testfile.com  
Line 156: Line 90:
  
  
===  Specifying the initial entry path (the -d argument) ===
+
====  Specifying the initial ODB entry path ====
  
 
The <span style="color:darkcyan;">''odbedit''</span>  ''-d'' argument is used in conjunction with the ''-c'' argument to specify the initial path, e.g.
 
The <span style="color:darkcyan;">''odbedit''</span>  ''-d'' argument is used in conjunction with the ''-c'' argument to specify the initial path, e.g.
Line 163: Line 97:
 
  [local:pol:S]/>ls test
 
  [local:pol:S]/>ls test
 
  testval
 
  testval
 +
 +
 +
 +
 +
== [[odbedit command list]] ==

Revision as of 16:08, 19 August 2013

Introduction

The MIDAS odbedit utility is primarily an Online Database (ODB) Editor. It also acts as a run control and has limited run monitoring features, so is an alternative to the web-based run control program mhttpd. On the other hand, mhttpd has limited editing capability, and does not support all of the features of odbedit.

The features of odbedit include

  • create the ODB of the desired size
  • save all or part of the ODB onto disk and reload from a saved file
  • list/create/rename/re-order/delete ODB keys
  • edit contents of ODB keys
  • create (soft)links to ODB keys
  • start/stop runs
  • list and shutdown active clients
  • create a c-structure from the ODB
  • change a key's access mode (e.g. read-only)
  • execute a list of commands from a file
  • connect to corrupted ODB


odbedit treats the hierarchical online database very much like a file system. Most commands are similar to UNIX file commands, e.g. ls, cd, chmod, ln etc. The help command displays a short description of all commands.

The odbedit commands and mode of operation are described fully in the following sections.

Starting odbedit utility

Arguments
   [ -h hostname ]
   [ -e exptname ]
   [-c command ]      : Perform a single command. See using an external command
   [-c @commandFile ] : Perform commands in sequence found in the commandFile. See using an external command file
   [-s size ]         : Size in bytes (for ODB creation). See creating the ODB.
   [-d ODB Subtree]   : Specify the initial entry ODB path to go to. See Specifying the ODB entry path.
   [-g]               : Debug
   [-C ]              : Connect to corrupted ODB
Usage
   >odbedit

Command Line Interpreter

ODBedit has a simple command line interface with command line editing similar to the UNIX tcsh shell. The following edit keys are implemented:

[Backspace]          Erase the character left from cursor
[Delete/Ctrl-D]      Erase the character under cursor
[Ctrl-W/Ctrl-U]      Erase the current line
[Ctrl-K]             Erase the line from cursor to end
[Left arrow/Ctrl-B]  Move cursor left
[Right arrow/Ctrl-F] Move cursor right
[Home/Ctrl-A]        Move cursor to beginning of line
[End/Ctrl-E]         Move cursor to end of line
[Up arrow/Ctrl-P]    Recall previous command
[Down arrow/Ctrl-N]  Recall next command
[Ctrl-F]             Find most recent command which starts with current line
[Tab/Ctrl-I]         Complete the path. The command ls /Sy <tab> becomes ls /System.


Creating the ODB

When odbedit is started for the first time, if there is no existing ODB for the experiment (see Common Parameters to MIDAS Utilities #Midas experiment (exptname)) the ODB will be created with the default size of 128KB, unless overruled by the -s <size> argument.


Using an external command

In the simplest case, a single odbedit command can be entered on the command line using the -c argument, e.g.

[pol@isdaq01 src]$ odbedit -c start
Starting run #401
Run #401 started
[pol@isdaq01 src]$ odbedit -c stop
Run #401 stopped

Using an external command file

Perform commands in sequence found in the specified commandFile e.g.

[pol@isdaq01 pol]$ odbedit -d /Equipment/TDC/Settings/ -c @testfile.com 

where the file "testfile.com" contains odbedit commands, such as

set testval 4 
ls testval
start

This external command feature allows for sophisticated shell scripts to be created that can manipulate the odb. Such scripts can for example

  • check ODB parameters prior to beginning of run
  • send run parameters to the electronic logbook

Scripts using the external command feature are often used at begin and end of run, see also /Programs/execute on start run


Specifying the initial ODB entry path

The odbedit -d argument is used in conjunction with the -c argument to specify the initial path, e.g.

[pol@isdaq01 pol]$ odbedit -d /test -c "set testval 3"
[pol@isdaq01 pol]$ odb
[local:pol:S]/>ls test
testval



odbedit command list