私はこれの初心者です。 dd-wrtをルーターにインストールして構成しました。
dd-wrtバージョン:DD-WRT v24-sp2(08/07/10)ルーターバージョン:D-Link DIR 600
その中に帯域幅使用量監視スクリプトを設定しようとしています。
再起動時に削除されることなく、ルーターに詳細を保存する方法はありますか?
つまり、取得できる永続ストレージの種類はありますか?
ありがとう
J
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
ミカが言ったように:nvramは永続ストレージの名前です。残念ながら、それはnotファイルシステムです。 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(rev 14896)でテスト済み
通常、使用できるスペースがあります。たとえば、次の回答を読んでください: https://stackoverflow.com/questions/451638/list-free-flash-space-on-wrt54gl-with-dd-wrt-v24sp1-firmare 。私のWAG200Gでは、目的のためにmtd2またはmtd3をフォーマットしました。ただし、使用できるフラッシュブロックを確認する必要があります。そうしないと、デバイスをブリックに変えることができます。
使用できる小さなスペースがあります。ルーターのスペックを調べていなかったので、正確にはわかりません。ファイルシステムに書き込んでいるcronジョブを設定すると、そうではありませんか? SSHで接続し、/ varディレクトリをチェックアウトします。 USBポートがある場合は、そこにログファイルを配置できます。ログが特定のサイズになったらログを削除するようにスクリプトで確認してください。そうしないと、ルーターが停止します。
これはあなたの興味を引くかもしれません http://www.dd-wrt.com/wiki/index.php/Useful_Scripts またはこのフォーラムスレッド。 http://www.dd-wrt.com/phpBB2/viewtopic.php?t=81432
リンクには2つの指示があります。
私の場合、コマンドラインインターフェイスのみが機能しました。 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