
Ich bin ein Neuling auf diesem Gebiet. Ich habe dd-wrt auf meinem Router installiert und konfiguriert.
dd-wrt-Version: DD-WRT v24-sp2 (08/07/10) Router-Version: D-Link DIR 600
Ich versuche, darin ein Skript zur Überwachung der Bandbreitennutzung einzurichten.
Gibt es eine Möglichkeit, Details im Router zu speichern, ohne dass sie beim Neustart gelöscht werden?
Ich meine, gibt es eine Art dauerhaften Speicher, den ich bekommen kann?
Danke
J
Antwort1
Das sollte der Fall sein nvram
(d. h. nichtflüchtiger RAM).
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
Antwort2
Wie Mika sagte: nvram ist der Name des persistenten Speichers. Leider ist esnichtein Dateisystem. Das Dateisystem von DD-WRT (zumindest die kleinen) ist eine Kombination aus Squashfs und Ramfs und wird beim Booten aus im NVRAM gespeicherten Werten gefüllt.
Wenn Sie zuVerwaltung->Befehlekönnen Sie ein Skript eingeben und es alsBenutzerdefiniertes Skript(unten auf der Seite). Sie können diese Funktion verwenden, um mehrere Anwendungsfälle zu implementieren, vorausgesetzt, sie sind alle in diesem einzelnen Skript enthalten. Ich habe so etwas gemacht:
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
Dann führe ich das Skript in der Befehlszeile aus:
/tmp/custom.sh wifion
Und als Cron-Job (Verwaltung->Management):
*/4 * * * * root /tmp/custom.sh wificontrol
Ich weiß, das ist keine sehr schöne Lösung, aber es funktioniert. Getestet auf meinem v24-sp2 (rev 14896)
Antwort3
Es gibt einen kleinen Bereich, den Sie verwenden können. Ich weiß es nicht genau, weil ich die Spezifikationen Ihres Routers nicht nachgeschlagen habe. Wenn Sie einen Cron-Job einrichten, schreiben Sie in das Dateisystem, oder nicht? Ich würde mich per SSH anmelden und das Verzeichnis /var überprüfen. Wenn Sie einen USB-Anschluss haben, können Sie Ihre Protokolldateien dort ablegen. Achten Sie in Ihrem Skript nur darauf, die Protokolle zu löschen, sobald sie eine bestimmte Größe erreichen, sonst stirbt Ihr Router.
Das könnte Sie interessierenhttp://www.dd-wrt.com/wiki/index.php/Useful_Scripts oder dieser Forenthread.http://www.dd-wrt.com/phpBB2/viewtopic.php?t=81432
Antwort4
JFFS aktivieren.
Unter dem Link finden sich zwei Anleitungen:
- über die Web-GUI-Schnittstelle
- mithilfe der Befehlszeilenschnittstelle
In meinem Fall funktionierte nur die Befehlszeilenschnittstelle. Die Web-GUI-Schnittstelle nicht.
meine modifizierten Befehlszeilenschnittstellenanweisungen
Diese Befehle lassen sich am einfachsten in einer Shell über SSH ausführen; SSH muss aktiviert sein.
Überprüfen Sie zunächst, ob jffs bereits gemountet ist:
mount
Eine gemountete JFFS-Partition sieht folgendermaßen aus:
$ 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
Wenn nicht verfügbar, weisen Sie DD-WRT an, eines zu formatieren und zu erstellen:
Sie sollten wahrscheinlich Ihre DD-WRT-Konfiguration sichern, bevor Sie diese ausführen
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
Nach dem Neustart die Neuformatierung pro Start aufheben, damit keine Dateien verloren gehen
nvram set clean_jffs2=0
nvram set sys_clean_jffs2=0
nvram commit
Testen mit
date | tee /jffs/test
cat /jffs/test