Je souhaite lancer un script bash lorsqu'un bouton est enfoncé sur un site Web ..__ Ceci est ma première tentative:
<button type="button" onclick="/path/to/name.sh">Click Me!</button>
Mais pas de chance. Aucune suggestion?
Comme Luke l’a déclaré, vous devez utiliser un langage côté serveur, tel que php . Voici un exemple php très simple:
<?php
if ($_GET['run']) {
# This code will run if ?run=true is set.
exec("/path/to/name.sh");
}
?>
<!-- This link will add ?run=true to your URL, myfilename.php?run=true -->
<a href="?run=true">Click Me!</a>
Enregistrez ceci sous le nom myfilename.php
et placez-le sur une machine avec un serveur Web avec php installé. La même chose peut être accomplie avec asp, Java, Ruby, python, ...
PHP est probablement le plus facile.
Créez simplement un fichier script.php
qui contient <?php Shell_exec("yourscript.sh"); ?>
et envoyez toute personne qui clique sur le bouton à cette destination. Vous pouvez renvoyer l'utilisateur à la page d'origine avec en-tête:
<?php
Shell_exec("yourscript.sh");
header('Location: http://www.website.com/page?success=true');
?>
Il s’agit en réalité d’une extension de la réponse de BBB qui a permis à mon expérience de fonctionner.
Ce script créera simplement un fichier/tmp/testfile lorsque vous cliquez sur le bouton "Ouvrir le script".
Cela nécessite 3 fichiers.
L'arbre de fichiers:
root@test:/var/www/html# tree testscript/
testscript/
├── index.html
├── testexec.php
└── test.sh
1. La page Web principale:
root@test:/var/www/html# cat testscript/index.html
<form action="/testscript/testexec.php">
<input type="submit" value="Open Script">
</form>
2. La page PHP qui exécute le script et redirige vers la page principale:
root@test:/var/www/html# cat testscript/testexec.php
<?php
Shell_exec("/var/www/html/testscript/test.sh");
header('Location: http://192.168.1.222/testscript/index.html?success=true');
?>
3. Le script:
root@test:/var/www/html# cat testscript/test.sh
#!/bin/bash
touch /tmp/testfile
Vous pouvez faire des scripts côté serveur en bash sans problème.
Voici un autre tutoriel: http://www.yolinux.com/TUTORIALS/BashShellCgi.html
Il y a un tutoriel donné ici. Cela servira de bon point de départ -
http://www.cyberciti.biz/tips/executing-linuxunix-commands-from-web-page-part-i.html
Voici à quoi ça ressemble en pure bash
cat /usr/lib/cgi-bin/index.cgi
#!/bin/bash
echo Content-type: text/html
echo ""
## make POST and GET stings
## as bash variables available
if [ ! -z $CONTENT_LENGTH ] && [ "$CONTENT_LENGTH" -gt 0 ] && [ $CONTENT_TYPE != "multipart/form-data" ]; then
read -n $CONTENT_LENGTH POST_STRING <&0
eval `echo "${POST_STRING//;}"|tr '&' ';'`
fi
eval `echo "${QUERY_STRING//;}"|tr '&' ';'`
echo "<!DOCTYPE html>"
echo "<html>"
echo "<head>"
echo "</head>"
if [[ "$vote" = "a" ]];then
echo "you pressed A"
Sudo /usr/local/bin/run_a.sh
Elif [[ "$vote" = "b" ]];then
echo "you pressed B"
Sudo /usr/local/bin/run_b.sh
fi
echo "<body>"
echo "<div id=\"content-container\">"
echo "<div id=\"content-container-center\">"
echo "<form id=\"choice\" name='form' method=\"POST\" action=\"/\">"
echo "<button id=\"a\" type=\"submit\" name=\"vote\" class=\"a\" value=\"a\">A</button>"
echo "<button id=\"b\" type=\"submit\" name=\"vote\" class=\"b\" value=\"b\">B</button>"
echo "</form>"
echo "<div id=\"tip\">"
echo "</div>"
echo "</div>"
echo "</div>"
echo "</div>"
echo "</body>"
echo "</html>"
Construire avechttps://github.com/tinoschroeter/bash_on_steroids