
私はこの分野の初心者です。 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