openwrt uci
UCI: Unified Configuration Interface 通用配置接口,主要用于集中控制openwrt的配置文件。
1、uci使用的配置文件一般放置在设备上的/etc/config目录下,包括一些兼容的应用,譬如snmp,保存在/etc/config/的配置文件是已经被重写后的文件。
并且这些配置文件被写在RAM,而不是flash中,因为它没有必要被写在不易失的内存中,并且他们会经常改变。
存在于/etc/config下面的文件,可以使用直接修改或者通过uci命令的方式,还有兼容的luci页面等来进行修改。配置文件被修改后,要想使配置生效,必须重启相应的进程。
2、uci配置文件的语法
uci配置文件包含了多个“config”段。
package 'example' config 'example' 'test'
option 'string' 'some value'
option 'boolean' '1'
list 'collection' 'first item'
list 'collection' 'second item'
- The
config 'example' 'test'statement defines the start of a section with the typeexampleand the nametest. There can also be so called anonymous sections with only a type, but no name identifier. The type is important for the processing programs to decide how to treat the enclosed options.
“example”和“test”定义了一个段,段的类型为example,名字为test。也有匿名段,即只有段类型(example),木有段名称(test).
- The
option 'string' 'some value'andoption 'boolean' '1'lines define simple values within the section. Note that there are no syntactical differences between text and boolean options. Per convention, boolean options may have one of the values '0', 'no', 'off', 'false' or 'disabled' to specify a false value or '1' , 'yes', 'on', 'true' or 'enabled' to specify a true value.
“string”和“some value”组成了一对值(value)。并且对于文本和布尔型没有明确的界限
- In the lines starting with a
listkeyword an option with multiple values is defined. Allliststatements that share the same name,collectionin our example, will be combined into a single list of values with the same order as in the configuration file.
关键字“list”定义了一个数组,共用一个数组名(例如本例中的 collection),
- The indentation of the
optionandliststatements is a convention to improve the readability of the configuration file but it's not syntactically required.
- If an option is absent and not required, the default value is assumed. If it is absent and required, it may trigger an error in the application or other unwanted behaviour.
- A way to disable a config section, that does not have a
enabledoption to be disabled, is renaming the config section identifier (or type, in this caseexample) to a value not recognized by the processes that uses those values. Normally adisabled_identifieras config section type/identifier is sufficient.
一种禁止section段的方法,就是重命名section段名(或者是类型type名),总之就是使使用这个配置文件的进程识别不出来。
It is important to know that UCI identifiers and config file names may contain only the characters a-z, 0-9 and _.
uci配置文件中使用的变量只支持a-z,0-9和下划线_.
3、使用命令行修改配置文件
对于匿名段,需要加@和取第一个[0]的符号才能够正常获取和修改值。
例如:
root@hbg:/# cat /etc/config/snmpd
config agent
option agentaddress UDP:161
利用查看命令你会查看到:
root@hbg:/# uci show snmpd
snmpd.@agent[0]=agent
snmpd.@agent[0].agentaddress=UDP:161
因此你要查看agent下的值时需要使用命令:
root@hbg:/# uci get snmpd.@agent[0].agentaddress
UDP:161
root@TVWS:/#
否则会报错:
root@hbg:/# uci get snmpd.agent.agentaddress
uci: Entry not found
root@TVWS:/
来源于: http://wiki.openwrt.org/doc/uci
openwrt uci的更多相关文章
- OpenWRT UCI命令实现无线中继
本文主要功能主要是利用OpenWRT系统uci命令实现无线中继,主要是利用uci程序修改/etc/congfig/目录下的配置文件.实现步骤如下主要分为以下几步: 1) 安装 relayd (opkg ...
- [openwrt] uci 的shell和lua接口
uci是openwrt上配置操作的接口,不管是自动化的shell脚本,还是使用luci来二次开发配置界面,都会用到这部分知识. uci提供了lua, shell, c接口,这里主要用到了前两种 she ...
- OpenWrt的UCI系统
http://wiki.openwrt.org/doc/uci UCI是Unified Configuration Interface的缩写,翻译成中文就是统一配置接口,用途就是为OpenWrt提供一 ...
- 【openwrt】再设置
https://wiki.openwrt.org/zh-cn/doc/uci/network https://wiki.openwrt.org/zh-cn/doc/uci/wireless https ...
- [Openwrt 项目开发笔记]:Samba服务&vsFTP服务(四)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 在上一节中,我们讲述了如何在路由器上挂载U盘,以 ...
- configure.ac
# # Copyright (C) - Tobias Brunner # Copyright (C) - Andreas Steffen # Copyright (C) - Martin Willi ...
- openwrt开发笔记三:uci移植及API调用
1.uci编译安装.移植 安装依赖 libubox #安装cmake sudo apt-get install cmake #下载依赖库libubox git clone http://git.nbd ...
- OpenWrt wireless通过配置uci生效
[转载请注明出处:钱正柱 http://blog.csdn.net/qianguozheng/article/details/24412673] 配置无线 vi /etc/config/wireles ...
- OpenWrt中开启usb存储和samba服务
在从官网安装的WNDR3800 15.05.1版本OpenWrt中, 不带usb存储支持以及samba, 需要另外安装 1. 启用usb支持 USB Basic Support https://wik ...
随机推荐
- [转]URL的解析,C语言实现
http://blog.csdn.net/cuishumao/article/details/10284463 一 说明(1)应用情况:比如基于socket来实现http协议等,这时候就需要解析URL ...
- 为什么 把单一元素的数组放在一个struct的尾端问题
问题摘自<深度探究c++对象模型>: struct mumble { /* stuff */ char pc[ 1 ];};[sizeof(mumble)是一个字节 .pc则代表的是指向这 ...
- js格式转换
//1.保留整数 function showInteger(value,row,index){ if(value!=null && value!="" && ...
- Intent Flag实际项目 -- 超时跳转登录界面并清理前面所有activity
项目中涉及到登录超时跳转登录界面的逻辑,我以前的跳转flag为Intent.FLAG_ACTIVITY_CLEAR_TOP,但是点击返回按钮还是会回到上个界面.代码如下: ActivityUtils. ...
- PHP高效获取远程图片尺寸和大小
/** * 获取远程图片的宽高和体积大小 * * @param string $url 远程图片的链接 * @param string $type 获取远程图片资源的方式, 默认为 curl 可选 f ...
- Python查询MySQL进行远程采集图片实例
这是四五年以前做小说站采集图片时写过唯一一次 Python 代码 #!/usr/bin/python #-*-coding:utf-8-*- import MySQLdb, os, socket, t ...
- sqlalchemy 映射的小例子
1.多张表映射到一个类 import pandas as pdfrom settings import DATABASESfrom sqlalchemy import create_engineimp ...
- 整屏滚动效果 jquery.fullPage.js插件+CSS3实现
最近很流行整屏滚动的效果,无论是在PC端还是移动端,本人也借机学习了一下,主要通过jquery.funnPage.js插件+CSS3实现效果. 本人做的效果: PC端:http://demo.qpdi ...
- 去掉svn与文件之间 的关联
今天在检出文件的时候,没注意检出目录 ,居然直接检出到D盘里了.然后就看到D盘上有个大大的绿勾,看起来很不舒服,想去掉. 自己看看小乌龟里好像没这功能,于是百度,一大堆都是要改和注册相关的东西,照着做 ...
- 遍历(一)jquery $().each和$.each()
原文:http://www.frontopen.com/1394.html 在jquery中,遍历对象和数组,经常会用到$().each和$.each(),两个方法. $().each 在dom处理上 ...