Skip to content
Snippets Groups Projects
man_knotc.rst 6.28 KiB
Newer Older
.. highlight:: console

knotc – Knot DNS control utility
================================

Synopsis
--------

:program:`knotc` [*parameters*] *action* [*action_args*]

Description
-----------

If no *action* is specified, the program is executed in interactive mode.
Parameters
..........

**-c**, **--config** *file*
  Use a textual configuration file (default is :file:`@config_dir@/knot.conf`).

**-C**, **--confdb** *directory*
  Use a binary configuration database directory (default is :file:`@storage_dir@/confdb`).
  The default configuration database, if exists, has a preference to the default
  configuration file.
**-s**, **--socket** *path*
  Use a control UNIX socket path (default is :file:`@run_dir@/knot.sock`).

**-t**, **--timeout** *seconds*
  Use a control timeout in seconds. Set 0 for infinity (default is 5).

**-f**, **--force**
  Forced operation. Overrides some checks.

**-v**, **--verbose**
  Enable debug output.

**-h**, **--help**
  Print the program help.

**-V**, **--version**
  Print the program version.
**status**
  Check if the server is running.
  Stop the server if running.
  Reload the server configuration and modified zone files. All open zone
  transactions will be aborted!
**stats** [*module*\ [\ **.**\ *counter*\ ]]
  Show global statistics counter(s). To print also counters with value 0, use
  force option.

**zone-check** [*zone*...]
  Test if the server can load the zone. Semantic checks are executed if enabled
  in the configuration. (*)

**zone-memstats** [*zone*...]
  Estimate memory use for the zone. (*)

**zone-status** [*zone*...]
  Show the zone status. (*)
**zone-reload** [*zone*...]
  Trigger a zone reload from a disk without checking its modification time. For
  slave zone, the refresh from a master server is scheduled; for master zone,
  the notification of slave servers is scheduled. An open zone transaction
  will be aborted!
**zone-refresh** [*zone*...]
  Trigger a check for the zone serial on the zone's master. If the master has a
  newer zone, a transfer is scheduled. This command is valid for slave zones.
**zone-retransfer** [*zone*...]
  Trigger a zone transfer from the zone's master. The server doesn't check the
  serial of the master's zone. This command is valid for slave zones.
**zone-flush** [*zone*...]
  Trigger a zone journal flush into the zone file.
Daniel Salzman's avatar
Daniel Salzman committed
**zone-sign** [*zone*...]
  Trigger a DNSSEC re-sign of the zone. Existing signatures will be dropped.
  This command is valid for zones with automatic DNSSEC signing.
**zone-read** *zone* [*owner* [*type*]]
  Get zone data that are currently being presented.

**zone-begin** *zone*...
  Begin a zone transaction.

**zone-commit** *zone*...
  Commit the zone transaction. All changes are applied to the zone.

**zone-abort** *zone*...
  Abort the zone transaction. All changes are discarded.

**zone-diff** *zone*
  Get zone changes within the transaction.

**zone-get** *zone* [*owner* [*type*]]
  Get zone data within the transaction.

**zone-set** *zone* *owner* [*ttl*] *type* *rdata*
  Add zone record within the transaction. The first record in a rrset
  requires a ttl value specified.

**zone-unset** *zone* *owner* [*type* [*rdata*]]
  Remove zone data within the transaction.

**zone-purge** *zone*...
  Purge zone data, file, journal, and timers.
**zone-stats** *zone* [*module*\ [\ **.**\ *counter*\ ]]
  Show zone statistics counter(s). To print also counters with value 0, use
  force option.

**zone-freeze** [*zone*...]
  Temporarily postpone zone-changing events (load, refresh, update, flush, and
  DNSSEC signing).

**zone-thaw** [*zone*...]
  Dismiss zone freeze.

Daniel Salzman's avatar
Daniel Salzman committed
  Initialize the configuration database. (*)

**conf-check**
  Check the server configuration. (*)
**conf-import** *filename*
Daniel Salzman's avatar
Daniel Salzman committed
  Import a configuration file into the configuration database. Ensure the
  server is not using the configuration database! (*)
**conf-export** *filename*
Daniel Salzman's avatar
Daniel Salzman committed
  Export the configuration database into a config file. (*)
**conf-list** [*item*]
Daniel Salzman's avatar
Daniel Salzman committed
  List the configuration database sections or section items.

**conf-read** [*item*]
Daniel Salzman's avatar
Daniel Salzman committed
  Read the item from the active configuration database.

**conf-begin**
Daniel Salzman's avatar
Daniel Salzman committed
  Begin a writing configuration database transaction. Only one transaction
  can be opened at a time.

**conf-commit**
Daniel Salzman's avatar
Daniel Salzman committed
  Commit the configuration database transaction.

**conf-abort**
Daniel Salzman's avatar
Daniel Salzman committed
  Rollback the configuration database transaction.

**conf-diff** [*item*]
  Get the item difference in the transaction.

**conf-get** [*item*]
  Get the item data from the transaction.

**conf-set** *item* [*data*...]
  Set the item data in the transaction.

**conf-unset** [*item*] [*data*...]
  Unset the item data in the transaction.
Empty or **--** *zone* parameter means all zones or all zones with a transaction.

Use **@** *owner* to denote the zone name.
Type *item* parameter in the form of *section*\ [**[**\ *id*\ **]**\ ][**.**\ *name*].
Daniel Salzman's avatar
Daniel Salzman committed
(*) indicates a local operation which requires a configuration.
Interactive mode
................

The utility provides interactive mode with basic line editing functionality,
command completion, and command history.

Interactive mode behavior can be customized in `~/.editrc`. Refer to
:manpage:`editrc(5)` for details.

Command history is saved in `~/.knotc_history`.

Reload the whole server configuration
.....................................
Daniel Salzman's avatar
Daniel Salzman committed
Flush the example.com and example.org zones
...........................................
Daniel Salzman's avatar
Daniel Salzman committed
  $ knotc zone-flush example.com example.org
Get the current server configuration
....................................

::

  $ knotc conf-read server

Get the list of the current zones
.................................

::

  $ knotc conf-read zone.domain

Get the master remotes for the example.com zone
...............................................

::

  $ knotc conf-read 'zone[example.com].master'
Daniel Salzman's avatar
Daniel Salzman committed
Add example.org zone with a zonefile location
.............................................

::

  $ knotc conf-begin
  $ knotc conf-set 'zone[example.org]'
  $ knotc conf-set 'zone[example.org].file' '/var/zones/example.org.zone'
  $ knotc conf-commit

Get the SOA record for each configured zone
...........................................

::

  $ knotc zone-read -- @ SOA

See Also
--------

:manpage:`knotd(8)`, :manpage:`knot.conf(5)`, :manpage:`editrc(5)`.