DD-WRT を搭載したルーター上のスクリプトが見つからないため実行できません

DD-WRT を搭載したルーター上のスクリプトが見つからないため実行できません

私は、DD-WRT「Kong Mod」リリース: 04-19-2016を搭載したNetgear Nighhawk R7000ルーターを持っています。私は、PixelServを使用してルーター上で直接広告をブロックしようとしていました。これチュートリアル (そして、スクリプトを実行可能に設定しました)。

残念ながら動作しません。

チュートリアルには、このように起動時のコマンドを保存すると、/jffs/dns/disable_adds.sh起動時にスクリプトが実行されるようになると書かれています。

ルーターの Web インターフェイスのコマンド シェルを介して上記のようにスクリプトを直接起動しようとすると、次のメッセージが表示されます。

sh: eval: line 1: /jffs/dns/disable_adds.sh: not found

echo $PWD上記のコマンド シェルで を実行すると、/wwwと階層的に並列するフォルダーである が返されます/jffs

同じシェルで を使用するとls ../jffs/dns、スクリプトが適切な場所にあることが示されます。 でスクリプトを実行しようとすると、../jffs/dns/disable_adds.sh上記と同じメッセージが表示されます。

出力フィールドには、echoだけでも何も表示されないことがあり、複数のコマンドも機能しないことがあることに注意してください。

ルータがスクリプトの存在を認識しない理由と、スクリプトを実行する方法を調べるために、今からどう進めればよいのか、私には全くわかりません。

編集: 前述のチュートリアルの最後に記載されているトラブルシューティング手順をすでに試し、Windows 7 搭載の PC で動作するようにしようとしていることを述べておく必要があると思います。

編集2: コメントで提案されたようにテキストを少しフォーマットし、さらに情報を追加しました。これでより読みやすくなったと思います。

答え1

おそらくあなたはシバンきちんと。

スクリプトを実行すると、システムにスクリプトの実行方法が指示されます。次の例を試してください。

/bin/bat通訳として使用しようとしています(/bin/bat存在しません):

$ cat <<EOF >test.sh
> #!/bin/bat
> hello
> EOF
$ chmod +x test.sh
$ ./test.sh
-bash: ./test.sh: /bin/bat: bad interpreter: No such file or directory

/bin/cat通訳として使用しようとしています:

$ cat <<EOF >test.sh
> #!/bin/cat
> hello
> EOF
$ chmod +x test.sh
$ ./test.sh
#!/bin/cat
hello

カットダウン/組み込みシステムでは、not found上記のようなエラーが表示される可能性が非常に高くなります。

重要な最初の行 ( ) を正しく入力したこと#!...、そこにリストされているファイルが存在し、エラーなしで実行できることを確認します。

通常は、次のようなものが必要になります#!/bin/sh( で指定されているとおりdisable_adds.sh)。

編集:行末に問題がある可能性もあります。WinSCP またはファイルの転送に使用しているその他のツールが行末を操作していないことを確認してください。WinSCP よくある質問

答え2

私も同じ問題を抱えていました。解決策をブログに書きました。http://studioforge.xyz/how-to-configure-cisco-linksys-wrt54g-v-2-to-run-pixelserv-on-dd-wrt/結局、ファイルの 1 つに対して dos2unix を実行し、再度アップロードする必要がありました。

関連情報