Estou configurando um roteador executando o OpenWRT, mas estou lutando para entender como usar o uci
comando (Unified Configuration Interface) para inspecionar um arquivo de configuração existente. Eu gostaria de automatizar essa configuração em um script de shell.
Tomemos, por exemplo, a configuração do firewall com /etc/config/firewall
195 de comprimento, portanto, um pouco difícil de inspecionar com cat
.
Existem várias regras, pegue a primeira com:
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#
Eu posso inspecionar os vários campos desta primeira regra ( @rule[0]
), por exemplo, o campo name
com:
root@OpenWrt:/etc/config# uci get firewall.@rule[0].name
Allow-DHCP-Renew
root@OpenWrt:/etc/config#
Mas não consigo ver toda a regra como saída, já tentei uci get firewall.@rule[0].*
mas não é a sintaxe correta.
Não há manual para uci
( man uci
), então não tenho certeza de onde encontrar as informações sobre como usar esse comando.
Esse "grupo get" é possível?
Ehm... Acabei de descobrir que preciso usar
uci show
em vez deuci get
, veja abaixo um exemplo:Se você deseja criar um script para configurar o OpenWRT usando todas as configurações atuais do dispositivo.
Se você estiver usando o construtor de imagens para firmware customizado, crie um arquivo para a
files/etc/uci-defaults
pasta no diretório do construtor de imagens.