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].*
を試してみましたが、正しい構文ではありません。
uci
(man uci
)のマニュアルがないため、そのコマンドの使用方法に関する情報がどこにあるかわかりません。
この「グループ取得」はまったく可能ですか?
えーと... 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#