Odbedit: Difference between revisions

From MidasWiki
Jump to navigation Jump to search
No edit summary
No edit summary
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 15: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