UCI简介~

文件语法

配置文件由配置节(section)组成,配置节由多个"name/value"选项组成。每个配置节需要有一个类,但是不一定需要名字。

语法如下:

config <type> ["<name>"]          #section
    option <name>  "<value>"      # option

UCI的配置文件通常包含一个或者多个配置节,所谓配置节就是带有一个或者多个选项的语句。

如/etc/config/system

config system
    option hostname OpenWrt
    option timezone UTC
config timeserver ntp
    list server 0.openwrt.poll.ntp.org
    list server 1.openwrt.poll.ntp.org
    option enable 1

配置节config system, 类型为system , 没有名字,为匿名配置节。

配置节config timeserver ntp, 类型为timeserver, 名字为ntp。

option 用来定义单个值。

list 用来定义多个值,名字相同,如server.

一般不需要在name和value上使用引号,只有在value上有空格或者制表符的时候才使用引号。

UCI标识符和配置文件的名称之后能包含字符a~z,A~Z,0~9和下划线_.,选项的值可以是任何字符,但是要正确使用引号。

统一配置原理

在OpenWrt上很多第三个应用的原始配置文件是通过UCI配置文件来生成的,然后在启动应用程序。

如dnsmasq程序。

首先/etc/init.d/dnsmasq会通过/etc/config/dhcp生成/var/tmp/dnsmasq.conf配置文件,然后启动dnsmasq应用程序。

/etc/init.d/dnsmasq  ----> /etc/config/dhcp -----> 生成/var/tmp/dnsmasq.conf配置文件

/etc/init.d/dnsmasq 启动dnsmasq应用程序。

OpenWrt的核心配置分成很多文件,可以通过命令行修改,也可以通过编程语言(shell/c/lua)API修改。这也是web接口修改,如luci修改uci文件的方式。

修改uci配置之后,需要通过/etc/init.d进行重启,这样更新的UCI才会生效。

如果只是重启引用程序,UCI修改可能不会生效,不会生成原始配置文件。

uci set network.lan.ipaddr=192.168.6.1
uci commit network



/etc/init.d/network restart
常用功能配置文件含义
文件路径含义
/etc/config/dhcpdnsmasq软件包配置,包含dhcp和dns.
/etc/config/dropbearssh服务器配置
/etc/config/firewall防火墙,网络地址转换,报过滤,端口转发等
/etc/config/network网络配置,包括桥,接口,路由配置
/etc/config/system系统设置,主机名称,网络时间同步
/etc/config/timeserverrdate的时间服务配置
/etc/config/luci基本luci配置
/etc/config/wireless无线设置和wifi网络定义
/etc/config/uhttpdweb服务器设置
/etc/config/umnpdminiupnpd UPnP服务器设置
/etc/config/qos网络服务质量配置文件

UCI工具

uci
Usage: uci [<option>] <commands> [<arguments>]

commands:
    batch
    export
    import
    changes
    commit
    add
    add_list
    del_list
    show
    get
    set
    delete
    rename
    revert
    reorder
   
Option:
    -c <path> 设置搜索路径,默认是/etc/config
    -d <str>  设置list在uci show 的显示分隔符
    -f <file>  文件输入而不是stdin
    -m    when importing, merge data into existing package
    -n name unnamed serction on export
    

所有的uci set  / uci add / uci rename /uci delete都是将配置写入一个临时配置,运行uci commit 协议实际存储的配置。

创建一个UCI配置文件:

touch /etc/config/hello    #创建一个hello的配置文件
uci set hello.global=system  #创建一个配置节   config global system

uci set hello.global.agent=bjbook    #创建一个选项 option agent  bjbook
uci set hello.global.url='www.baidu.com'  # 创建一个配置项  option url www.baidu.com
uci commit hello    # 提交配置修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值