This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
documentation:configuration:uci [2015/05/09 16:08] admin |
documentation:configuration:uci [2018/05/24 09:05] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== UCI ====== | ====== UCI ====== | ||
- | UCI (__U__nified __C__onfig __S__ystem) is intended to centralize the configuration | + | The //__U__nified __C__onfig __S__ystem// is the central pivot when it comes the routers configuration settings. |
+ | |||
+ | All maintained configuration files are stored in ///etc/config/// and can either be edited with a text-editor or by using the //uci// command-line interface. \\ | ||
+ | After altering the routers configuration files, affected system services needs to be restarted. | ||
===== Configuration Files ===== | ===== Configuration Files ===== | ||
Line 8: | Line 11: | ||
[[documentation:configuration:config_files|Configuration Files]] | [[documentation:configuration:config_files|Configuration Files]] | ||
- | ===== File Syntax ===== | + | ===== File Syntax / Basic principle ===== |
- | Below is an example of a simple configuration file: | + | Usually the configuration files or //'packages'// consists of various blocks, so called //'sections'//. |
+ | Each section starts with the //'config'//-statement and can imply multiple settings. | ||
- | <code> | + | Below is an simple example of such a section block: |
- | package 'example' | + | |
+ | <code> | ||
config 'example' 'test' | config 'example' 'test' | ||
- | option 'string' 'some value' | + | option 'test_option1' 'some value' |
- | option 'boolean' '1' | + | option 'test_option2' '1' |
- | list 'collection' 'first item' | + | list 'collection' 'first item' |
- | list 'collection' 'second item' | + | list 'collection' 'second item' |
+ | </code> | ||
+ | |||
+ | The first line defines a section and follows the syntax: //config '<type>' '<name>'//. So in this example the section-type would be 'example' and its name would be 'test'. | ||
+ | |||
+ | Followed by two //'option'//-statements which defines simple values. Each option needs a name and a value. | ||
+ | |||
+ | Finally the example section ends with two //'list'//-statements. Lists are special options which can combine multiple list-entries to one singe object. | ||
+ | Like //options//, each list needs a name. If several list-statements with the same name are present in one section, each entry will be added to the list. | ||
+ | In our example, a single list named 'collection' will be generated, containing the entries 'first item' and 'second item'. | ||
+ | |||
+ | |||
+ | ====== Command line utility ====== | ||
+ | |||
+ | <code> | ||
+ | Usage | ||
+ | |||
+ | # uci | ||
+ | |||
+ | Usage: uci [<options>] <command> [<arguments>] | ||
+ | |||
+ | Commands: | ||
+ | batch | ||
+ | export [<config>] | ||
+ | import [<config>] | ||
+ | changes [<config>] | ||
+ | commit [<config>] | ||
+ | add <config> <section-type> | ||
+ | add_list <config>.<section>.<option>=<string> | ||
+ | show [<config>[.<section>[.<option>]]] | ||
+ | get <config>.<section>[.<option>] | ||
+ | set <config>.<section>[.<option>]=<value> | ||
+ | delete <config>[.<section[.<option>]] | ||
+ | rename <config>.<section>[.<option>]=<name> | ||
+ | revert <config>[.<section>[.<option>]] | ||
+ | |||
+ | Options: | ||
+ | -c <path> set the search path for config files (default: /etc/config) | ||
+ | -d <str> set the delimiter for list values in uci show | ||
+ | -f <file> use <file> as input instead of stdin | ||
+ | -m when importing, merge data into an existing package | ||
+ | -n name unnamed sections on export (default) | ||
+ | -N don't name unnamed sections | ||
+ | -p <path> add a search path for config change files | ||
+ | -P <path> add a search path for config change files and use as default | ||
+ | -q quiet mode (don't print error messages) | ||
+ | -s force strict mode (stop on parser errors, default) | ||
+ | -S disable strict mode | ||
+ | -X do not use extended syntax on 'show' | ||
+ | </code> | ||
+ | |||
+ | If you want to look up your changes use the following command: | ||
+ | <code> | ||
+ | uci changes | ||
+ | </code> | ||
+ | |||
+ | In case you alter the UCI configuration using the command-line interface, the config needs to be written to the configuration files by commiting them using: | ||
+ | <code> | ||
+ | uci commit | ||
</code> | </code> | ||
+ | before any service restarts will take effect of the configuration |