El script en el enrutador con DD-WRT no se puede ejecutar porque no se encuentra

0

Tengo un enrutador netgear nighhawk r7000 con el lanzamiento DD-WRT "Kong Mod": 19/04/2016. Intenté bloquear los anuncios directamente en el enrutador con pixelserv siguiendo este tutorial (y sí, configuré el script para que sea ejecutable).

Lamentablemente no funciona.

Está escrito en el tutorial que guardar el comando para el inicio de esta manera /jffs/dns/disable_adds.shdebería hacer que el script se ejecute al inicio.

Cuando intento iniciar el script directamente como se escribió anteriormente a través del shell de comandos de la interfaz web del enrutador, recibo el siguiente mensaje:

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

Intentar un echo $PWDcomando en el shell de comando mencionado devuelve /wwwque es una carpeta paralela a la jerarquía /jffs.

El uso ls ../jffs/dnsen el mismo shell muestra que el script se encuentra donde se supone que debe estar. Intentar ejecutar el script ../jffs/dns/disable_adds.shproduce el mismo mensaje que el anterior.

Parece que vale la pena señalar que el campo de salida a veces no muestra nada incluso con solo echo y que más de un comando tampoco parece funcionar

No tengo idea de cómo proceder ahora para descubrir por qué el enrutador no reconoce la existencia del script y cómo hacer que se ejecute.

Editar: supongo que debería mencionar que ya intenté seguir los pasos de solución de problemas al final del tutorial mencionado y que estoy tratando de que funcione desde una PC con Windows 7.

Edit2: formateé el texto un poco como se sugirió en los comentarios y agregué más información. Espero que sea más legible ahora.

Clofri
fuente
Bienvenido a Super User. El error común que cometen algunos miembros es el formateo. Muchas personas no leerán una gran cantidad de texto difícil de leer. Dedicar un minuto a revisar el formato , luego editar su pregunta para que sea más fácil de leer, aumentará sus posibilidades de obtener la ayuda que busca.
CharlieRB
1
/jffs/dns/no es lo mismo que../jffs/dns
DavidPostill

Respuestas:

1

Supongo que no ha especificado el shebang correctamente.

Cuando ejecuta un script, esto le indicará al sistema cómo ejecutarlo, pruebe los siguientes ejemplos:

Intentando usarlo /bin/batcomo intérprete ( /bin/batno existe):

$ 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

Intentando usar /bin/catcomo intérprete:

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

Es muy posible que en un sistema de corte / incrustado, se le presente el not founderror que ve arriba.

Compruebe que ha escrito correctamente esa importante primera línea ( #!...), y que el archivo que aparece allí existe y puede ejecutarse sin error.

Por lo general, querrá algo como #!/bin/sh(como se especifica en sus disable_adds.sh).

Editar: también es posible que tenga un problema con los finales de línea; asegúrese de que WinSCP o lo que sea que esté usando para transferir los archivos no juegue con ellos. Preguntas frecuentes de WinSCP .

Attie
fuente
0

Tuve el mismo problema. Documenté mi solución aquí en mi blog, http://studioforge.xyz/how-to-configure-cisco-linksys-wrt54g-v-2-to-run-pixelserv-on-dd-wrt/ , todo se redujo a ejecutando dos2unix en uno de los archivos y volviendo a subirlo.

Michael J Lane
fuente
1
¡Bienvenido a Super User! Por favor, editar tu post para incluir los elementos esenciales del material relacionado. Las buenas respuestas incluyen instrucciones específicas ( no solo enlaces a ellas ) y una explicación de cómo / por qué la respuesta responde a la pregunta de los OP.
Twisty Impersonator