¿Existe un almacenamiento persistente en el enrutador con dd-wrt?

¿Existe un almacenamiento persistente en el enrutador con dd-wrt?

Soy novato en esto. Tengo dd-wrt, instalado y configurado en mi enrutador.

Versión dd-wrt: DD-WRT v24-sp2 (07/08/10) Versión del enrutador: D-Link DIR 600

Estoy intentando configurar un script de monitoreo del uso del ancho de banda.

¿Hay alguna manera de almacenar detalles en el enrutador sin que se eliminen al reiniciar?

Quiero decir, ¿hay algún tipo de almacenamiento persistente que pueda conseguir?

gracias
j

Respuesta1

Debería haberlo nvram(es decir, un ariete no 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

Respuesta2

Como dijo Mika: nvram es el nombre del almacenamiento persistente. Desafortunadamente esnoun sistema de archivos. El sistema de archivos de DD-WRT (al menos los más pequeños) es una combinación de squashfs y ramfs y se completa en el momento del arranque a partir de valores almacenados en nvram.

Cuando vas aAdministración->Comandos, puede ingresar un script y guardarlo comoGuión personalizado(final de la página). Puede utilizar esta función para implementar varios casos de uso, siempre que todos estén en este único script. Hice algo como esto:

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

Luego, ejecuto el script en la línea de comando:

/tmp/custom.sh wifion

Y como trabajo cron (Administración->Gestión):

*/4 * * * * root /tmp/custom.sh wificontrol

Lo sé, esta no es una solución muy buena, pero funciona. Probado en mi v24-sp2 (rev 14896)

Respuesta3

Hay un pequeño espacio que puedes utilizar. No lo sé exactamente porque no busqué las especificaciones de tu enrutador. Cuando configuras un trabajo cron, estás escribiendo en el sistema de archivos, ¿no es así? Entraría por SSH y comprobaría el directorio/var. Si tiene un puerto USB, puede colocar allí sus archivos de registro. Solo asegúrese de eliminar los registros en su secuencia de comandos una vez que alcancen un tamaño determinado o su enrutador morirá.

Esto te puede interesarhttp://www.dd-wrt.com/wiki/index.php/Useful_Scripts o este hilo del foro.http://www.dd-wrt.com/phpBB2/viewtopic.php?t=81432

Respuesta4

Habilitar JFFS.

Hay dos instrucciones en el enlace:

  • utilizando la interfaz Web-GUI
  • usando la interfaz de línea de comandos

En mi caso, solo funcionó la interfaz de línea de comandos. La interfaz Web-GUI no.


mis instrucciones modificadas de la interfaz de línea de comandos

Estos comandos son más fáciles de ejecutar en un shell a través de ssh; ssh debe estar habilitado.

Primero, verifica si jffs ya está montado:

mount

Una partición jffs montada tiene el siguiente aspecto:

$ 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

Si no está disponible, indique a DD-WRT que formatee y cree uno:

PROBABLEMENTE DEBE HACER UNA COPIA DE SEGURIDAD DE SU CONFIGURACIÓN DD-WRT ANTES DE EJECUTAR ESTOS

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

Después de reiniciar, desactive el formateo por inicio para que los archivos no se pierdan

nvram set clean_jffs2=0
nvram set sys_clean_jffs2=0
nvram commit

Prueba con

date | tee /jffs/test
cat /jffs/test

información relacionada