dd-wrt ​​を搭載したルーターに永続的なストレージはありますか?

dd-wrt ​​を搭載したルーターに永続的なストレージはありますか?

私はこの分野の初心者です。 dd-wrt ​​を入手し、ルーターにインストールして設定しました。

dd-wrt ​​バージョン: DD-WRT v24-sp2 (08/07/10) ルーター バージョン: D-Link DIR 600

帯域幅使用量監視スクリプトを設定しようとしています。

再起動しても削除されずにルーターに詳細を保存する方法はありますか?

つまり、何らかの永続的なストレージを入手できるということですか?

ありがとう
J

答え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

ミカが言ったように、nvramは永続ストレージの名前です。残念ながら、ないファイルシステム。DD-WRT のファイルシステム (少なくとも小さいもの) は、squashfs と ramfs の組み合わせであり、起動時に nvram に保存された値から設定されます。

行くときは管理->コマンドスクリプトを入力して保存することができますカスタムスクリプト(ページの下部) この機能を使用すると、複数のユースケースを実装できます。ただし、それらはすべて 1 つのスクリプト内にあります。私は次のようなものを作成しました。

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 (rev 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を有効にする

リンクには 2 つの手順があります。

  • Web-GUIインターフェースの使用
  • コマンドラインインターフェースを使用する

私の場合、コマンドライン インターフェイスのみが機能しました。Web GUI インターフェイスは機能しませんでした。


私が修正したコマンドラインインターフェースの手順

これらのコマンドは、ssh 経由でシェルで実行するのが最も簡単です。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

関連情報