
我對此是新手。我已經在我的路由器中安裝並設定了 dd-wrt 。
dd-wrt 版本:DD-WRT v24-sp2 (08/07/10) 路由器版本:D-Link DIR 600
我正在嘗試在其中設定頻寬使用情況監控腳本。
有什麼辦法,我可以在路由器中存儲詳細信息,而不會在重新啟動時被刪除?
我的意思是我可以獲得某種持久性儲存嗎?
謝謝傑
答案1
應該有nvram
(即非揮發性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
答案2
正如 Mika 所說:nvram 是持久性儲存的名稱。不幸的是,它是不是一個檔案系統。 DD-WRT 的檔案系統(至少是小型檔案系統)是 squashfs 和 ramfs 的組合,並在啟動時從 nvram 儲存的值填充。
當你去管理->命令,您可以輸入腳本並將其另存為自訂腳本(頁底部)。您可以使用此功能來實現多個用例,前提是它們都在這個單一腳本中。我做了這樣的事情:
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
然後,我在命令列上運行腳本:
/tmp/custom.sh wifion
作為一個 cron 作業 (行政->管理):
*/4 * * * * root /tmp/custom.sh wificontrol
我知道,這不是一個很好的解決方案,但它確實有效。在我的 v24-sp2(修訂版 14896)上測試
答案3
有一個小空間可以使用。我不太清楚,因為我沒有查你的路由器的規格。當您設定 cron 作業時,您正在寫入檔案系統,不是嗎?我會透過 SSH 登入並查看 /var 目錄。如果您有 USB 端口,您可以將日誌檔案放在那裡。只要確保在您的腳本中一旦日誌達到一定大小就將其刪除,否則您的路由器將會死掉。
這可能會讓您感興趣http://www.dd-wrt.com/wiki/index.php/Useful_Scripts 或這個論壇主題。http://www.dd-wrt.com/phpBB2/viewtopic.php?t=81432
答案4
啟用 JFFS。
連結中有兩個說明:
- 使用 Web-GUI 介面
- 使用命令列介面
就我而言,只有命令列介面有效。 Web-GUI 介面沒有。
我修改後的命令列介面說明
這些命令最容易透過 ssh 在 shell 中運作;必須啟用 ssh。
首先,檢查jffs是否已經安裝:
mount
已安裝的 jffs 分割區如下所示:
$ 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
如果不可用,則指示 DD-WRT 格式化並建立一個:
在運行這些之前,您可能應該備份您的 DD-WRT 配置
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
重新啟動後,取消設定每次啟動重新格式化,這樣檔案就不會遺失
nvram set clean_jffs2=0
nvram set sys_clean_jffs2=0
nvram commit
測試用
date | tee /jffs/test
cat /jffs/test