This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Crear panel web para ejecutar scripts (bash/python)
#1
Pregunta 
Buenas a tod@s:

Estoy haciendo la automatización de unos procesos. Ahora estoy ejecutando los scripts de bash y python a través del terminal y van de fábula. Sin embargo, ya se sabe que no todo el mundo está familiarizado con el terminal y la pantalla negra asusta. Y los compañeros me han pedido que construya un panel web para que sea más bonito estéticamente trabajar con estos scripts.

Entiendo que habría que crear la web en HTML/CSS, hasta aquí ningún problema. Sin embargo, como puedo hacer para lanzar estos scripts e indicar los parámetros correspondientes al script (trabajan con parámetros)?


Muchas gracias de antemano.

Es un tema pendiente de hace mucho tiempo y este proyecto me va genial para aprender esta parte del tema web.
  Responder
#2
Pues dependen varias cosas, esos scripts se ejecutan en un unico ordenador central o cada uno lo hace en el suyo?

Hasta donde sé, un navegador no puede ejecutar programas en el cliente (usuario), no sé si esto ha cambiado ultimamente (con webasm por ejemplo), pero sería un problema de seguridad importante. Por lo que si los scripts se ejecutan en un unico punto central es más fácil montar el tinglado, si no, cada usuario tendría que instalarse un servidor, o una aplicación (tipo electron, webview,...)

En cualquier caso, lo que necesitas es que tu página web se comunique con un servidor y éste sea el que ejecute los comandos/scripts. por ejemplo web (html/css) -> servidor (en python tienes "flask" por ejemplo) -> scripts/comandos

Flash es el que me suena de python: https://en.wikipedia.org/wiki/Flask_%28web_framework%29 no sé si habrá otro mejor o más moderno.
En PHP lo montas con apache o nginx+php-fpm o ...
En Java tienes spring, play, spark,...
En Go con la librería standard es suficiente, pero aún así tienes echo, bufalo, revel,...
  Responder
#3
Buenas a tod@s:

En teoría se ejecutarían en el propio servidor central donde hay todos los scripts, info y demás cosas necesarias.

Me miro todo lo que comentas al final de tu respuesta porque puede ser muy interesante :9

Muchas gracias de antemano
  Responder
#4
Podrías hacerlo fácilmente desde PHP:

http://www.tutorialarena.com/blog/run-sh...om-php.php

O si no con python de una manera más similar, pero creo que lo más simple es eso.
Código:
try {
   live();
}
catch (BestMoments) {
MessageBox.Show(Happy)
}

  Responder
#5
Buenas a tod@s:

Al final he decidio hacerlo con PHP y así me meto a practicar PHP, que hice un curso online hace un tiempo y no lo había aplicado a un proyecto real.

Ya he conseguido hacer que a través de un panel web ejecute un script en bash. Sin embargo, me encuentro que, tengo un formulario donde introduzco un valor, que se enviará como parámetro al script bash a ejecutar. La variable la obtengo a través de un POST correctamente, ya que consigo mostrarla por pantalla. Sin embargo, llevo toda la tarde intentando meterla como parámetro y no lo consigo

He visto que se tendría que hacer de la siguiente forma

shell_exec("/bin/bash script.sh{ $_REQUEST['VARIABLE']}");

Sin embargo, no funciona

Alguna idea???

Es que si soluciono eso ya casi lo tendré hecho ya que todo funcionará de la misma forma y por lo tanto podré replicarlo con el resto de botones para lanzar el resto de scripts.


Muchas gracias.
  Responder
#6
Buenas a tod@s:

Ayer por la mañana conseguí hacerlo de la siguiente forma:


if ($_POST[OPCION_1]) {
    $param = $_REQUEST["NUMERO_PEDIDO_1"]; //LO PASAMOS COMO PARAMETRO
    //VERIFICAMOS SI HAY ESCRITO UN PEDIDO
    if (empty($param))
   {
      echo 'Indicar el numero de pedido';
  }
   else{
     echo 'Concatenando los ficheros  ';
     echo  ($_POST['NUMERO_PEDIDO1']); //RECOGEMOS EL NUMERO DE COMANDA
      shell_exec("/bin/bash script.sh " . $param); //EJECUTAMOS SCRIPT CON PARAMETRO
     }


Muchas gracias por todo.

La verdad es que ya he conseguido hacer la gran mayoría de cosas necesarias. Ahora lo estoy optimizando y refactorizando para intentar agilizar el script ya que tendrá que ejecutarse de forma recursiva.

Ahora me estoy peleando para que cuando detecte errores los copie en un fichero y ese contenido se muestre en la pantalla en un campo de texto para informar al usuario de los errores que ha detectado al ejecutarse el script (errores no de ejecución del script si no de las validaciones que hace el script y ha detectado que están mal)

Ya os iré informando
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  Duda sobre maquetación de web crivendel 1 1,589 27-01-2017, 11:42 PM
Último mensaje: Kurama
  Por qué me sale del try? [PYTHON] Electromecánico 2 1,934 22-01-2017, 01:13 PM
Último mensaje: Electromecánico
  Duda sobre Bash Electromecánico 4 2,189 24-08-2016, 07:35 AM
Último mensaje: Electromecánico
Pregunta Duda/Curiosidad script en Bash Electromecánico 3 2,103 18-05-2016, 07:24 PM
Último mensaje: Electromecánico
  Windows 7, 8 y 10 en todas sus versiones desde la web oficial! DanixXz 2 2,009 26-01-2016, 01:22 PM
Último mensaje: shiryou