
Tengo un index.html
enlace que debe eliminar todos los *.zip del archivo /mnt/sda1/down
.
Cuando hago clic en el enlace, comienza a descargarse, no a ejecutar el script sh.
Aquí está el index.html
script y sh:
#!/bin/sh
cd /mnt/sda1/down
rm *.zip
...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<label><a href="delete.sh">DELETE ALL</a> </label>
</form>
</body>
</html>
Respuesta1
Su enlace es un enlace a un archivo que su navegador no reconoce, por lo que asume que se trata de una descarga.
Poner ese enlace en un <form>
no cambia nada. El propósito del <form>
elemento es recopilar parámetros antes de llamar a la URL especificada en el atributo "acción" (generalmente con un <input type="submit">
elemento en el formulario).
Ni siquiera está claro que haya un servidor involucrado. Si es así ¿de qué tipo es?
Respuesta2
HTML no tiene este poder. Lo que necesitas usar es PHP, ya que puede interactuar con tu sistema operativo ya que es un lenguaje backend.
Lo que puede hacer es crear un enlace a un archivo php y cuando se haga clic en el enlace, navegará hasta el archivo PHP, ejecutará el script y luego podrá indicarle que lo redirija de regreso a la página de inicio o algo así:
índice.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<a href="delete.php">DELETE ALL</a>
</body>
</html>
eliminar.php
<?php
echo shell_exec('sh /path/to/delete.sh');
header('Location: /'); #this will take you back to the home page
?>
Publicación original:https://stackoverflow.com/questions/7397672/how-to-run-a-sh-file-from-php