web-dev-qa-db-ja.com

OpenWRTでuciコマンドを使用してすべての構成オプションを取得する方法

OpenWRTを実行しているルーターを構成していますが、uciコマンド(統合構成インターフェース)を使用して既存の構成ファイルを検査する方法を理解するのに苦労しています。この構成をシェルスクリプトで自動化したいと思います。

たとえば/etc/config/firewallのファイアウォール設定は195と長いため、catで検査するのは少し難しいです。

さまざまなルールがありますが、最初のルールは次のとおりです。

root@OpenWrt:/etc/config# grep -B1 -A6 'Allow-DHCP-Renew' /etc/config/firewall
config rule
    option name     Allow-DHCP-Renew
    option src      wan
    option proto        udp
    option dest_port    68
    option target       ACCEPT
    option family       ipv4

root@OpenWrt:/etc/config# 

この最初のルール(@rule[0])のさまざまなフィールドを検査できます。フィールドnameと:

root@OpenWrt:/etc/config# uci get firewall.@rule[0].name
Allow-DHCP-Renew
root@OpenWrt:/etc/config# 

しかし、ルール全体を出力として見ることはできません。uci get firewall.@rule[0].*を試してみましたが、正しい構文ではありません。

uciman uci)のマニュアルがないため、そのコマンドの使用方法に関する情報がどこにあるかわかりません。

この「グループ取得」はまったく可能ですか?

2
TPPZ

えーと... uci show の代わりに uci get、以下の例を参照してください:

root@OpenWrt:/etc/config# uci show firewall.@rule[0]
firewall.cfg0592bd=rule
firewall.cfg0592bd.name='Allow-DHCP-Renew'
firewall.cfg0592bd.src='wan'
firewall.cfg0592bd.proto='udp'
firewall.cfg0592bd.dest_port='68'
firewall.cfg0592bd.target='ACCEPT'
firewall.cfg0592bd.family='ipv4'
root@OpenWrt:/etc/config#
1
TPPZ