Skript auf Router mit DD-WRT kann nicht ausgeführt werden, da es nicht gefunden wird

Skript auf Router mit DD-WRT kann nicht ausgeführt werden, da es nicht gefunden wird

Ich habe einen Netgear Nighhawk R7000-Router mit der DD-WRT-Version „Kong Mod“ vom 19.04.2016. Ich habe versucht, Anzeigen direkt auf dem Router mit Pixelserv zu blockieren.DasTutorial (und ja, ich habe das Skript so eingestellt, dass es ausführbar ist).

Leider funktioniert es nicht.

Im Tutorial steht, dass das Speichern des Startbefehls auf diese Weise /jffs/dns/disable_adds.shdazu führen soll, dass das Skript beim Start ausgeführt wird.

Beim Versuch das Skript wie oben beschrieben direkt über die Kommandozeile des Webinterfaces des Routers zu starten erhalte ich folgende Meldung:

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

Der Versuch mit echo $PWDin der genannten Befehlsshell gibt zurück, /wwwdass es sich um einen Ordner parallel in der Hierarchie zu handelt /jffs.

Die Verwendung ls ../jffs/dnsin derselben Shell zeigt, dass das Skript dort gefunden wird, wo es sein soll. Der Versuch, das Skript mit auszuführen, ../jffs/dns/disable_adds.sherzeugt dieselbe Meldung wie oben.

Es scheint erwähnenswert, dass das Ausgabefeld manchmal nichts anzeigt, selbst wenn nur Echo verwendet wird, und dass mehr als ein Befehl auch nicht zu funktionieren scheint

Ich habe keine Ahnung, wie ich jetzt vorgehen soll, um herauszufinden, warum der Router die Existenz des Skripts nicht bestätigt und wie ich es zum Ausführen bekomme.

Bearbeiten: Ich denke, ich sollte erwähnen, dass ich bereits versucht habe, die Schritte zur Fehlerbehebung am Ende des genannten Tutorials zu befolgen und dass ich versuche, es von einem PC mit Windows 7 aus zum Laufen zu bringen.

Edit2: Ich habe den Text ein wenig formatiert, wie in den Kommentaren vorgeschlagen, und einige weitere Informationen hinzugefügt. Ich hoffe, er ist jetzt besser lesbar.

Antwort1

Ich vermute, Sie haben nicht angegeben,siebangrichtig.

Wenn Sie ein Skript ausführen, wird dem System mitgeteilt, wie es ausgeführt werden soll. Probieren Sie die folgenden Beispiele aus:

/bin/batVersuch , als Interpreter zu verwenden ( /bin/batexistiert nicht):

$ 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/catVersuch , als Interpreter zu verwenden :

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

not foundEs ist sehr gut möglich, dass Ihnen auf einem abgespeckten/eingebetteten System der oben angezeigte Fehler angezeigt wird .

Überprüfen Sie, ob Sie die wichtige erste Zeile richtig eingegeben haben ( #!...) und ob die dort aufgeführte Datei existiert und ohne Fehler ausgeführt werden kann.

Normalerweise möchten Sie etwas wie #!/bin/sh(wie in deren angegeben disable_adds.sh).

Bearbeiten:Möglicherweise liegt bei Ihnen auch ein Problem mit den Zeilenenden vor. Stellen Sie sicher, dass WinSCP oder das von Ihnen zum Übertragen der Dateien verwendete Programm diese nicht unterstützt.Häufig gestellte Fragen zu WinSCP.

Antwort2

Ich hatte das gleiche Problem. Ich habe meine Lösung hier in meinem Blog dokumentiert.http://studioforge.xyz/wie-konfiguriert-man-cisco-linksys-wrt54g-v-2-so-dass-man-pixelserv-auf-dd-wrt-ausführt/, es lief darauf hinaus, dos2unix auf einer der Dateien auszuführen und sie erneut hochzuladen.

verwandte Informationen