bionic (1) ovsdb-client.1.gz

Provided by: openvswitch-common_2.9.8-0ubuntu0.18.04.5_amd64 bug

NAME

       ovsdb-client - command-line interface to ovsdb-server(1)

SYNOPSIS

       Server-Level Commands:
              ovsdb-client [options] list-dbs [server]

       Database Schema Commands:
              ovsdb-client [options] get-schema [server] [database]
              ovsdb-client [options] list-tables [server] [database]
              ovsdb-client [options] list-columns [server] [database] [table]

       Database Version Management Commands:
              ovsdb-client [options] convert [server] schema
              ovsdb-client [options] needs-conversion [server] schema
              ovsdb-client [options] get-schema-version [server] [database]

       Data Management Commands:
              ovsdb-client [options] transact [server] transaction
              ovsdb-client [options] query [server] transaction
              ovsdb-client [options] dump [server] [database] [table [column...]]
              ovsdb-client [options] backup [server] [database] > snapshot
              ovsdb-client [options] [--force] restore [server] [database] < snapshot
              ovsdb-client [options] monitor [server] [database] table [column[,column]...]...
              ovsdb-client [options] monitor [server] [database] ALL
              ovsdb-client [options] monitor-cond [server] [database] conditions table [column[,column]...]...
              ovsdb-client [options] wait [server] database state

       Testing Commands:
              ovsdb-client [options] lock [server] lock
              ovsdb-client [options] steal [server] lock
              ovsdb-client [options] unlock [server] lock

       Other Commands:
              ovsdb-client help

       Cluster Options:
              [--no-leader-only]

       Output formatting options:
              [--format=format] [--data=format] [--no-headings] [--pretty] [--bare] [--timestamp]

       Daemon options:
              [--pidfile[=pidfile]] [--overwrite-pidfile] [--detach] [--no-chdir] [--no-self-confinement]

       Logging options:
              [-v[module[:destination[:level]]]]...
              [--verbose[=module[:destination[:level]]]]...
              [--log-file[=file]]

       Public key infrastructure options:
              [--private-key=privkey.pem]
              [--certificate=cert.pem]
              [--ca-cert=cacert.pem]
              [--bootstrap-ca-cert=cacert.pem]

       SSL connection options:
              [--ssl-protocols=protocols]
              [--ssl-ciphers=ciphers]

       Common options:
              [-h | --help] [-V | --version]

DESCRIPTION

       The  ovsdb-client  program  is a command-line client for interacting with a running ovsdb-server process.
       Each command connects to the specified OVSDB server, which may be an OVSDB active or  passive  connection
       method,  as  described  in  ovsdb(7).   The  default  server is unix:/var/run/openvswitch/db.sock and the
       default database is Open_vSwitch.

       ovsdb-client supports the method1,method2,...,methodN syntax described in ovsdb(7) for  connecting  to  a
       cluster.  When this syntax is used, ovsdb-client tries the cluster members in random order until it finds
       the cluster leader.  Specify the --no-leader-only option to instead accept any server that  is  connected
       to the cluster.

       For an introduction to OVSDB and its implementation in Open vSwitch, see ovsdb(7).

       The following sections describe the commands that ovsdb-client supports.

   Server-Level Commands
       Most  ovsdb-client  commands  work  with  an  individual  database, but these commands apply to an entire
       database server.

       list-dbs [server]
              Connects to server, retrieves the list of known databases, and prints them one  per  line.   These
              database names are the ones that other commands may use for database.

   Database Schema Commands
       These commands obtain the schema from a database and print it or part of it.

       get-schema [server] [database]
              Connects to server, retrieves the schema for database, and prints it in JSON format.

       list-tables [server] [database]
              Connects to server, retrieves the schema for database, and prints a table listing the name of each
              table within the database.

       list-columns [server] [database] table
              Connects to server, retrieves the schema for database, and prints a table  listing  the  name  and
              type of each column.  If table is specified, only columns in that table are listed; otherwise, the
              tables include columns in all tables.

   Database Version Management Commands
       An OVSDB schema has a schema version number, and an OVSDB database embeds  a  particular  version  of  an
       OVSDB  schema.  These version numbers take the form x.y.z, e.g. 1.2.3.  The OVSDB implementation does not
       enforce a particular version numbering scheme, but schemas managed within the Open  vSwitch  project  use
       the  following  approach.  Whenever the database schema is changed in a non-backward compatible way (e.g.
       deleting a column or a table), x is incremented (and y and z are reset to 0).  When the  database  schema
       is  changed  in a backward compatible way (e.g. adding a new column), y is incremented (and z is reset to
       0).  When the database schema is changed cosmetically (e.g. reindenting its syntax), z is incremented.

       Some OVSDB databases and schemas, especially very old ones, do not have a version number.

       Schema version numbers and Open vSwitch version numbers are independent.

       These commands work with different versions of OVSDB schemas and databases.

       convert [server] schema
              Reads an OVSDB schema in JSON format, as specified in the OVSDB specification, from  schema,  then
              connects  to  server  and  requests  the server to convert the database whose name is specified in
              schema to the schema also specified in schema.

              The conversion is atomic, consistent, isolated, and durable.  Following  the  schema  change,  the
              server  notifies  clients  that use the set_db_change_aware RPC introduced in Open vSwitch 2.9 and
              cancels their outstanding transactions  and  monitors.   The  server  disconnects  other  clients,
              enabling them to notice the change when they reconnect.

              This  command  can  do simple ``upgrades'' and ``downgrades'' on a database's schema.  The data in
              the database must be valid when interpreted under schema, with only one exception: data for tables
              and  columns that do not exist in schema are ignored.  Columns that exist in schema but not in the
              database are set to their default values.  All of schema's constraints apply in full.

              Some uses of this command can cause unrecoverable data loss.  For example, converting  a  database
              from  a  schema that has a given column or table to one that does not will delete all data in that
              column or table.  Back up critical databases before converting them.

              This command works with clustered and standalone databases.   Standalone  databases  may  also  be
              converted (offline) with ovsdb-tool's convert command.

       needs-conversion [server] schema
              Reads  the  schema  from schema, then connects to server and requests the schema from the database
              whose name is specified in schema.  If the two schemas are the same, prints no on stdout; if  they
              differ, prints yes.

       get-schema-version [server] [database]
              Connects  to  server,  retrieves the schema for database, and prints its version number on stdout.
              If database was created before schema versioning was introduced, then it will not have  a  version
              number and this command will print a blank line.

       get-schema-cksum [server] [database]
              Connects  to  server,  retrieves  the  schema for database, and prints its checksum on stdout.  If
              database does not include a checksum, prints a blank line.

   Data Management Commands
       These commands read or modify the data in a database.

       transact [server] transaction
              Connects to server, sends it the specified transaction, which must be a JSON array appropriate for
              use as the params to a JSON-RPC transact request, and prints the received reply on stdout.

       query [server] transaction
              This  commands  acts  like  a  read-only version of transact.  It connects to server, sends it the
              specified transaction, which must be a JSON array appropriate for use as the params to a  JSON-RPC
              transact  request,  and  prints the received reply on stdout.  To ensure that the transaction does
              not modify the database, this command appends an abort operation to the set of operations included
              in transaction before sending it to the database, and then removes the abort result from the reply
              (if it is present).

       dump [server] [database] [table [column...]]
              Connects to server, retrieves all of the data in database, and prints it on stdout as a series  of
              tables. If table is specified, only that table is retrieved.  If at least one column is specified,
              only those columns are retrieved.

       backup [server] [database] > snapshot
              Connects to server, retrieves a snapshot of the schema and data in  database,  and  prints  it  on
              stdout  in  the  format  used  for  OVSDB  standalone  and  active-backup  databases.   This is an
              appropriate way to back up any remote database.  The database snapshot that it outputs is suitable
              to be served up directly by ovsdb-server or used as the input to ovsdb-client restore.

              Another  way  to back up a standalone or active-backup database is to copy its database file, e.g.
              with cp.  This is safe even if the database is in use.

              The output does not include ephemeral columns, which by design do not survive across  restarts  of
              ovsdb-server.

       [--force] restore [server] [database] < snapshot
              Reads  snapshot,  which  must  be  a  OVSDB standalone or active-backup database (possibly but not
              necessarily created by ovsdb-client backup).  Then, connects to server, verifies that database and
              snapshot  have  the  same  schema,  then  deletes  all  of the data in database and replaces it by
              snapshot.  The replacement happens atomically, in a single transaction.

              UUIDs for rows in the restored database will differ from those  in  snapshot,  because  the  OVSDB
              protocol  does  not  allow  clients  to specify row UUIDs.  Another way to restore a standalone or
              active-backup database, which does also restore row UUIDs, is  to  stop  the  server  or  servers,
              replace  the  database  file  by  the  snapshot, then restart the database.  Either way, ephemeral
              columns are not restored, since by design they do not survive across restarts of ovsdb-server.

              Normally restore exits with a failure  if  snapshot  and  the  server's  database  have  different
              schemas.   In  such  a  case,  it  is a good idea to convert the database to the new schema before
              restoring,  e.g.  with  ovsdb-client  convert.   Use  --force  to  proceed  regardless  of  schema
              differences even though the restore might fail with an error or succeed with surprising results.

       monitor [server] [database] table [column[,column]...]...
       monitor-cond [server] [database] conditions table [column[,column]...]...
              Connects  to  server and monitors the contents of rows that match conditions in table in database.
              By default, the initial contents of table are printed, followed by each change as it  occurs.   If
              conditions  empty,  all  rows  will  be monitored. If at least one column is specified, only those
              columns are monitored.  The following column names have special meanings:

              !initial
                     Do not print the initial contents of the specified columns.

              !insert
                     Do not print newly inserted rows.

              !delete
                     Do not print deleted rows.

              !modify
                     Do not print modifications to existing rows.

              Multiple [column[,column]...] groups may  be  specified  as  separate  arguments,  e.g.  to  apply
              different  reporting  parameters to each group.  Whether multiple groups or only a single group is
              specified, any given column may only be mentioned once on the command line.

              conditions is a JSON array of <condition> as defined in RFC 7047 5.1 with the following change:  A
              condition can be either a 3-element JSON array as deescribed in the RFC or a boolean value..

              If  --detach  is  used  with  monitor  or  monitor-cond,  then  ovsdb-client detaches after it has
              successfully received and printed the initial contents of table.

              The monitor command uses RFC 7047 "monitor" method to open a monitor session with the server.  The
              monitor-cond  command  uses  RFC  7047  extension  "monitor_cond"  method. See ovsdb-server(1) for
              details.

       monitor [server] [database] ALL
              Connects to server and monitors the contents of all tables in database.  Prints initial values and
              all  kinds  of changes to all columns in the database.  The --detach option causes ovsdb-client to
              detach after it successfully receives and prints the initial database contents.

              The monitor command uses RFC 7047 "monitor" method to open a monitor session with the server.

       wait [server] database state
              Waits for database on server to enter a desired state, which may be one of:

              added  Waits until a database with the given name has been added to server.

              connected
                     Waits until a database with the given name has been added to server.  Then, if database  is
                     clustered, additionally waits until it has joined and connected to its cluster.

              removed
                     Waits  until  database has been removed from the database server.  This can also be used to
                     wait for a database to  complete  leaving  its  cluster,  because  ovsdb-server  removes  a
                     database at that point.

              database  is  mandatory for this command because it is often used to check for databases that have
              not yet been added to the server, so that the  ovsdb-client  semantics  of  acting  on  a  default
              database do not work.

              This  command acts on a particular database server, not on a cluster, so server must name a single
              server, not a comma-delimited list of servers.

   Testing commands
       These commands are mostly of interest for testing the correctness of the OVSDB server.

       lock [server] lock
       steal [server] lock
       unlock [server] lock
              Connects to server and issues corresponding RFC 7047 lock operations on lock. Prints json reply or
              subsequent  update  messages.   The  --detach  option  causes  ovsdb-client  to  detach  after  it
              successfully receives and prints the initial reply.

              When running with the --detach option, lock, steal, unlock and exit  commands  can  be  issued  by
              using ovs-appctl. exit command causes the ovsdb-client to close its ovsdb-server connection before
              exit.  The lock, steal and unlock commands can be used to issue additional  lock  operations  over
              the  same  ovsdb-server connection. All above commands take a single lock argument, which does not
              have to be the same as the lock that ovsdb-client started with.

OPTIONS

   Output Formatting Options
       Much of the output from ovsdb-client is in the form of tables.  The following options controlling  output
       formatting:

       -f format
       --format=format
              Sets the type of table formatting.  The following types of format are available:

              table (default)
                     2-D text tables with aligned columns.

              list   A list with one column per line and rows separated by a blank line.

              html   HTML tables.

              csv    Comma-separated values as defined in RFC 4180.

              json   JSON  format  as  defined  in  RFC 4627.  The output is a sequence of JSON objects, each of
                     which corresponds to one table.  Each JSON object has the following members with the  noted
                     values:

                     caption
                            The table's caption.  This member is omitted if the table has no caption.

                     headings
                            An  array  with one element per table column.  Each array element is a string giving
                            the corresponding column's heading.

                     data   An array with one element per table row.  Each element is also  an  array  with  one
                            element  per  table  column.   The elements of this second-level array are the cells
                            that constitute the table.  Cells that  represent  OVSDB  data  or  data  types  are
                            expressed in the format described in the OVSDB specification; other cells are simply
                            expressed as text strings.

       -d format
       --data=format
              Sets the formatting for cells within output tables unless the table format  is  set  to  json,  in
              which  case  json  formatting is always used when formatting cells.  The following types of format
              are available:

              string (default)
                     The simple format described in the Database Values section of ovs-vsctl(8).

              bare   The simple format with punctuation stripped off: [] and {} are omitted around  sets,  maps,
                     and  empty  columns,  items within sets and maps are space-separated, and strings are never
                     quoted.  This format may be easier for scripts to parse.

              json   The RFC 4627 JSON format as described above.

       --no-headings
              This option suppresses the heading row that otherwise appears in the first row of table output.

       --pretty
              By default, JSON in output is printed as compactly as possible.  This option causes JSON in output
              to  be  printed in a more readable fashion.  Members of objects and elements of arrays are printed
              one per line, with indentation.

              This option does not affect JSON in tables, which is always printed compactly.

       --bare Equivalent to --format=list --data=bare --no-headings.

       --max-column-width=n
              For table output only, limits the width of any column in the output to  n  columns.   Longer  cell
              data  is  truncated  to  fit,  as necessary.  Columns are always wide enough to display the column
              names, if the heading row is printed.

       --timestamp
              For the monitor and monitor-cond commands, add a timestamp to  each  table  update.   Most  output
              formats  add the timestamp on a line of its own just above the table.  The JSON output format puts
              the timestamp in a member of the top-level JSON object named time.

       -t
       --timeout=secs
              Limits ovsdb-client runtime to approximately secs seconds.  If the timeout  expires,  ovsdb-client
              will exit with a SIGALRM signal.

   Daemon Options
       The  daemon  options  apply  only to the monitor and monitor-cond commands.  With any other command, they
       have no effect.

       The following options are valid on POSIX based platforms.

       --pidfile[=pidfile]
              Causes a file (by default, ovsdb-client.pid) to be created  indicating  the  PID  of  the  running
              process.   If  the  pidfile  argument is not specified, or if it does not begin with /, then it is
              created in /var/run/openvswitch.

              If --pidfile is not specified, no pidfile is created.

       --overwrite-pidfile
              By default, when --pidfile is specified and the specified pidfile already exists and is locked  by
              a  running  process,  ovsdb-client  refuses  to start.  Specify --overwrite-pidfile to cause it to
              instead overwrite the pidfile.

              When --pidfile is not specified, this option has no effect.

       --detach
              Runs ovsdb-client as a background process.  The process forks, and in the child it  starts  a  new
              session,  closes  the standard file descriptors (which has the side effect of disabling logging to
              the console), and changes its current directory to the  root  (unless  --no-chdir  is  specified).
              After the child completes its initialization, the parent exits.

       --monitor
              Creates  an  additional  process  to monitor the ovsdb-client daemon.  If the daemon dies due to a
              signal that indicates a programming error (SIGABRT,  SIGALRM,  SIGBUS,  SIGFPE,  SIGILL,  SIGPIPE,
              SIGSEGV,  SIGXCPU,  or  SIGXFSZ)  then the monitor process starts a new copy of it.  If the daemon
              dies or exits for another reason, the monitor process exits.

              This option is normally used with --detach, but it also functions without it.

       --no-chdir
              By default, when --detach is specified, ovsdb-client changes its current working directory to  the
              root  directory  after  it  detaches.   Otherwise,  invoking ovsdb-client from a carelessly chosen
              directory would prevent the  administrator  from  unmounting  the  file  system  that  holds  that
              directory.

              Specifying  --no-chdir suppresses this behavior, preventing ovsdb-client from changing its current
              working directory.  This may be useful for collecting core files, since it is common  behavior  to
              write core dumps into the current working directory and the root directory is not a good directory
              to use.

              This option has no effect when --detach is not specified.

       --no-self-confinement
              By default daemon will try to self-confine itself to work with files under  well-know,  at  build-
              time  whitelisted  directories.   It  is better to stick with this default behavior and not to use
              this flag unless some other Access Control is used to confine daemon.  Note that  in  contrast  to
              other  access  control  implementations that are typically enforced from kernel-space (e.g. DAC or
              MAC), self-confinement is imposed from the user-space  daemon  itself  and  hence  should  not  be
              considered  as a full confinement strategy, but instead should be viewed as an additional layer of
              security.

       --user Causes ovsdb-client to run as a different user specified in "user:group", thus  dropping  most  of
              the  root privileges. Short forms "user" and ":group" are also allowed, with current user or group
              are assumed respectively. Only daemons started by the root user accepts this argument.

              On Linux, daemons will be granted CAP_IPC_LOCK  and  CAP_NET_BIND_SERVICES  before  dropping  root
              privileges.  Daemons  that  interact  with  a  datapath, such as ovs-vswitchd, will be granted two
              additional capabilities, namely CAP_NET_ADMIN and CAP_NET_RAW. The capability  change  will  apply
              even if new user is "root".

              On  Windows,  this option is not currently supported. For security reasons, specifying this option
              will cause the daemon process not to start.

   Logging Options
       -v[spec]
       --verbose=[spec]
              Sets logging levels.  Without any spec, sets the log level for every  module  and  destination  to
              dbg.   Otherwise,  spec is a list of words separated by spaces or commas or colons, up to one from
              each category below:

              •      A valid module name, as displayed by the vlog/list command on ovs-appctl(8), limits the log
                     level change to the specified module.

              •      syslog,  console,  or file, to limit the log level change to only to the system log, to the
                     console, or to a file, respectively.  (If --detach is specified,  ovsdb-client  closes  its
                     standard file descriptors, so logging to the console will have no effect.)

                     On  Windows  platform,  syslog  is  accepted  as  a  word and is only useful along with the
                     --syslog-target option (the word has no effect otherwise).

              •      off, emer, err, warn, info, or dbg, to control  the  log  level.   Messages  of  the  given
                     severity  or  higher  will  be logged, and messages of lower severity will be filtered out.
                     off filters out all messages.  See ovs-appctl(8) for a definition of each log level.

              Case is not significant within spec.

              Regardless of the log levels set for file, logging to a file will not take place unless --log-file
              is also specified (see below).

              For compatibility with older versions of OVS, any is accepted as a word but has no effect.

       -v
       --verbose
              Sets the maximum logging verbosity level, equivalent to --verbose=dbg.

       -vPATTERN:destination:pattern
       --verbose=PATTERN:destination:pattern
              Sets  the log pattern for destination to pattern.  Refer to ovs-appctl(8) for a description of the
              valid syntax for pattern.

       -vFACILITY:facility
       --verbose=FACILITY:facility
              Sets the RFC5424 facility of the log message. facility can be one of  kern,  user,  mail,  daemon,
              auth,  syslog,  lpr,  news,  uucp,  clock, ftp, ntp, audit, alert, clock2, local0, local1, local2,
              local3, local4, local5, local6 or local7. If this option is not specified, daemon is used  as  the
              default  for  the  local  system  syslog  and local0 is used while sending a message to the target
              provided via the --syslog-target option.

       --log-file[=file]
              Enables logging to a file.  If file is specified, then it is used as the exact name  for  the  log
              file.  The default log file name used if file is omitted is /var/log/openvswitch/ovsdb-client.log.

       --syslog-target=host:port
              Send  syslog  messages  to UDP port on host, in addition to the system syslog.  The host must be a
              numerical IP address, not a hostname.

       --syslog-method=method
              Specify method how syslog  messages  should  be  sent  to  syslog  daemon.   Following  forms  are
              supported:

              •      libc,  use  libc  syslog() function.  This is the default behavior.  Downside of using this
                     options is that libc adds fixed prefix to every message before it is actually sent  to  the
                     syslog daemon over /dev/log UNIX domain socket.

              •      unix:file,  use  UNIX  domain socket directly.  It is possible to specify arbitrary message
                     format with this option.  However, rsyslogd 8.9 and older versions use  hard  coded  parser
                     function  anyway  that limits UNIX domain socket use.  If you want to use arbitrary message
                     format with older rsyslogd versions, then use UDP socket to localhost IP address instead.

              •      udp:ip:port, use UDP socket.  With this method it is  possible  to  use  arbitrary  message
                     format  also  with  older  rsyslogd.   When  sending  syslog messages over UDP socket extra
                     precaution needs to be  taken  into  account,  for  example,  syslog  daemon  needs  to  be
                     configured  to  listen  on  the  specified  UDP  port,  accidental  iptables rules could be
                     interfering with local syslog traffic and there are some security considerations that apply
                     to UDP sockets, but do not apply to UNIX domain sockets.

   Public Key Infrastructure Options
       -p privkey.pem
       --private-key=privkey.pem
              Specifies  a  PEM file containing the private key used as ovsdb-client's identity for outgoing SSL
              connections.

       -c cert.pem
       --certificate=cert.pem
              Specifies a PEM file containing a certificate that certifies the private key specified  on  -p  or
              --private-key to be trustworthy.  The certificate must be signed by the certificate authority (CA)
              that the peer in SSL connections will use to verify it.

       -C cacert.pem
       --ca-cert=cacert.pem
              Specifies a PEM file containing  the  CA  certificate  that  ovsdb-client  should  use  to  verify
              certificates  presented  to it by SSL peers.  (This may be the same certificate that SSL peers use
              to verify the certificate specified on -c  or  --certificate,  or  it  may  be  a  different  one,
              depending on the PKI design in use.)

       -C none
       --ca-cert=none
              Disables  verification  of  certificates presented by SSL peers.  This introduces a security risk,
              because it means that certificates cannot be verified to be those of known trusted hosts.

       --bootstrap-ca-cert=cacert.pem
              When cacert.pem exists, this option has the same effect as -C or --ca-cert.  If it does not exist,
              then  ovsdb-client  will  attempt  to obtain the CA certificate from the SSL peer on its first SSL
              connection and save it to the named PEM file.  If it is successful, it will immediately  drop  the
              connection  and  reconnect,  and  from  then  on  all  SSL  connections must be authenticated by a
              certificate signed by the CA certificate thus obtained.

              This option exposes the SSL connection to a man-in-the-middle  attack  obtaining  the  initial  CA
              certificate, but it may be useful for bootstrapping.

              This option is only useful if the SSL peer sends its CA certificate as part of the SSL certificate
              chain.  The SSL protocol does not require the server to send the CA certificate.

              This option is mutually exclusive with -C and --ca-cert.

   SSL Connection Options
       --ssl-protocols=protocols
              Specifies, in a comma- or space-delimited list, the SSL protocols ovsdb-client will enable for SSL
              connections.   Supported  protocols include TLSv1, TLSv1.1, and TLSv1.2.  Regardless of order, the
              highest protocol supported by both sides will be chosen when making the connection.   The  default
              when this option is omitted is TLSv1,TLSv1.1,TLSv1.2.

       --ssl-ciphers=ciphers
              Specifies,  in  OpenSSL  cipher  string  format,  the  ciphers  ovsdb-client  will support for SSL
              connections.  The default when this option is omitted is HIGH:!aNULL:!MD5.

   Other Options
       -h
       --help Prints a brief help message to the console.

       -V
       --version
              Prints version information to the console.

SEE ALSO

       ovsdb(7), ovsdb-server(1), ovsdb-client(1).