
Eu sou novato nisso. Eu tenho o dd-wrt instalado e configurado no meu roteador.
Versão dd-wrt: DD-WRT v24-sp2 (08/07/10) Versão do roteador: D-Link DIR 600
Estou tentando configurar o script de monitoramento de uso de largura de banda nele.
Existe alguma maneira de armazenar detalhes no roteador, sem ser excluído na reinicialização?
Quero dizer, há algum tipo de armazenamento persistente que eu possa obter?
Obrigado
J.
Responder1
Deveria haver nvram
(ou seja, memória RAM não volátil).
nvram show # list all variables
nvram get name # get variable
nvram set name=value # set variable
nvram unset name # delete variable
nvram commit # save changes to flash
Responder2
Como disse Mika: nvram é o nome do armazenamento persistente. Infelizmente, énãoum sistema de arquivos. O sistema de arquivos do DD-WRT (pelo menos os pequenos) é uma combinação de squashfs e ramfs e é preenchido no momento da inicialização a partir de valores armazenados em nvram.
Quando você for paraAdministração->Comandos, você pode inserir um script e salvá-lo como umScript personalizado(Rodapé da página). Você pode usar esse recurso para implementar vários casos de uso, desde que todos estejam neste único script. Eu fiz algo assim:
case "$1" in
wificontrol)
#here is code which turns off wlan after 30 mins of inactivity
;;
wifion|wifi)
wlanIF=ra0
ifconfig $wlanIF up
touch /tmp/wlan-online0
;;
*)
echo "$0 {wificontrol|wifi[on]}"
esac
Então, executo o script na linha de comando:
/tmp/custom.sh wifion
E como um cron job (Administração->Gerenciamento):
*/4 * * * * root /tmp/custom.sh wificontrol
Eu sei, esta não é uma solução muito boa, mas funciona. Testado em meu v24-sp2 (rev 14896)
Responder3
Há um pequeno espaço que você pode usar. Não sei exatamente porque não procurei as especificações do seu roteador. Quando você define um cron job, você está gravando no sistema de arquivos, não é? Eu faria o SSH e verificaria o diretório /var. Se você tiver uma porta USB, poderá colocar seus arquivos de log lá. Apenas certifique-se de excluir os logs em seu script quando eles atingirem um determinado tamanho ou seu roteador morrerá.
Isso pode lhe interessarhttp://www.dd-wrt.com/wiki/index.php/Useful_Scripts ou este tópico do fórum.http://www.dd-wrt.com/phpBB2/viewtopic.php?t=81432
Responder4
Habilitar JFFS.
Existem duas instruções no link:
- usando interface Web-GUI
- usando interface de linha de comando
No meu caso, apenas a interface da linha de comando funcionou. A interface Web-GUI não.
minhas instruções modificadas da interface de linha de comando
Esses comandos são mais fáceis de executar em um shell via ssh; ssh deve estar habilitado.
Primeiro, verifique se o jffs já está montado:
mount
Uma partição jffs montada se parece com:
$ mount
...
/dev/mtdblock/4 on /jffs type jffs2 (rw)
$ df -h
Filesystem Size Used Available Use% Mounted on
...
/dev/mtdblock/4 4.3M 260.0K 4.0M 6% /jffs
Se não estiver disponível, instrua o DD-WRT para formatar e criar um:
VOCÊ PROVAVELMENTE DEVE FAZER BACKUP DA SUA CONFIGURAÇÃO DD-WRT ANTES DE EXECUTAR ESTAS
nvram set jffs_mounted=1
nvram set enable_jffs2=1
nvram set sys_enable_jffs2=1
nvram set clean_jffs2=1
nvram set sys_clean_jffs2=1
nvram commit
reboot
Após a reinicialização, desative a reformatação por inicialização para que os arquivos não sejam perdidos
nvram set clean_jffs2=0
nvram set sys_clean_jffs2=0
nvram commit
Teste com
date | tee /jffs/test
cat /jffs/test