openwrt中ubus的应用(四)

openwrt中ubus的应用

参考连接: https://wiki.openwrt.org/zh-cn/doc/techref/ubus

参考例程1

利用devstatus命令读取某个接口的参数

root@OpenWrt:/# devstatus eth0
{
        "external": false,
        "present": true,
        "type": "Network device",
        "up": true,
        "carrier": true,
        "macaddr": "24:03:00:38:ae:02",
        "ipv6": false,
        "statistics": {
                "collisions": 0,
                "rx_frame_errors": 0,
                "tx_compressed": 0,
                "multicast": 0,
                "rx_length_errors": 0,
                "tx_dropped": 0,
                "rx_bytes": 162806383,
                "rx_missed_errors": 0,
                "tx_errors": 0,
                "rx_compressed": 0,
                "rx_over_errors": 0,
                "tx_fifo_errors": 0,
                "rx_crc_errors": 0,
                "rx_packets": 2623030,
                "tx_heartbeat_errors": 0,
                "rx_dropped": 3,
                "tx_aborted_errors": 0,
                "tx_packets": 5821690,
                "rx_errors": 0,
                "tx_bytes": 3384480192,
                "tx_window_errors": 0,
                "rx_fifo_errors": 0,
                "tx_carrier_errors": 0
        }
}
root@OpenWrt:/#

LUA例程

--Load module
require "ubus"

--Establish connection
local conn = ubus.connect()
if not conn then
    error("Failed to connect to ubusd")
end

--Iterate all namespaces and procedures
local namespaces = conn:objects()
for i, n in ipairs(namespaces) do
    print("namespace=" .. n)
    local signatures = conn:signatures(n)
    for p, s in pairs(signatures) do
        print("\tprocedure=" .. p)
        for k, v in pairs(s) do
            print("\t\tattribute=" .. k .. " type=" .. v)
        end
    end
end

--Call a procedure
local status = conn:call("network.device", "status", { name = "eth0" })
for k, v in pairs(status) do
    print("key=" .. k .. " value=" .. tostring(v))
end

--Close connection
conn:close()

输出结果

root@OpenWrt:/# lua 11.lua 
key=statistics value=table: 0x432e90
key=type value=Network device
key=present value=true
key=up value=true
key=carrier value=true
key=external value=false
key=ipv6 value=false
key=macaddr value=24:03:00:38:ae:02
root@OpenWrt:/# 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值