knotc – Knot DNS control utility¶
Synopsis¶
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
@config_dir@/knot.conf
). - -C, --confdb directory
- Use a binary configuration database directory (default is
@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
@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.
Actions¶
- status [detail]
- Check if the server is running. Moreover display either the running knotd version, numbers of worker threads, or Knot DNS buid (configure) summary, if the parameter is specified.
- stop
- Stop the server if running.
- reload
- 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.
- 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.
- conf-init
- Initialize the configuration database. (*)
- conf-check
- Check the server configuration. (*)
- conf-import filename
- Import a configuration file into the configuration database. Ensure the server is not using the configuration database! (*)
- conf-export filename
- Export the configuration database into a config file. (*)
- conf-list [item]
- List the configuration database sections or section items.
- conf-read [item]
- Read the item from the active configuration database.
- conf-begin
- Begin a writing configuration database transaction. Only one transaction can be opened at a time.
- conf-commit
- Commit the configuration database transaction.
- conf-abort
- 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.
Note¶
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].
The detail option for status can be one of words: version, workers, configure.
(*) 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 editrc(5) for details.
Command history is saved in ~/.knotc_history.
Examples¶
Reload the whole server configuration¶
$ knotc reload
Flush the example.com and example.org zones¶
$ 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'
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¶
knotd(8), knot.conf(5), editrc(5).