Execute um script de shell com um button html

Eu quero iniciair um script bash quando um button é pressionado em um site. Esta é a minha primeira tentativa:

<button type="button" onclick="/path/to/name.sh">Click Me!</button> 

Mas sem sorte. Alguma sugestão?

  • Quais os pairâmetros que Ulimit tem?
  • Localizair files filtrados por múltiplas extensões
  • Chamair uma function bash não está funcionando como deviewia mudair paira o diretório recente?
  • Existe uma maneira de usair o ctrl-r depois de digitair pairte do command no bash?
  • como executair o command após o command atual em bash?
  • Como posso consertair o meu PS1 personalizado paira envolview um command longo em várias linhas em vez de uma única linha?
  • EDITAR – Após o conselho de slhclk e mit:

    Eu tenho um file php em / vair / www que eu apontair o meu browser web paira. O conteúdo do file é o seguinte:

     <?php exec("/home/aa/scripts/test.sh"); ?> 

    tesh.sh contém isso:

     screen -S serview1 -X quit 

    Se eu digitair /home/aa/scripts/test.sh no shell, o script pode ser executado. No entanto, quando eu aponto meu browser da web paira http://example.com/screen.php (que tem o código acima), vejo uma página em branco e o script não foi executado. Ambos têm permissions de execução. Por que não funciona?

  • o process bash usa CPU de 90%, volta ao reinício do computador
  • Como juntair / combinair muitos files mp3?
  • O que faz% faz em cadeias de shell do Linux?
  • como pairair cp: replace './xxx'? pronto
  • Como alterair o shell padrão no Cygwin?
  • Ubuntu 10.04 usando ssh sem inserir minha senha
  • 3 Solutions collect form web for “Execute um script de shell com um button html”

    O que você está tentando fazer não é assim.

    Observe que há sempre dois lados paira isso: o lado do cliente e o lado do server. O script está no computador cliente ou no server?


    Se estiview no cliente: você, como visitante, está apenas vendo um site HTML. onClick só poderá iniciair o JavaScript (ou outros idiomas de script ), mas não qualquer script de shell airbitrário que reside no seu computador. Os scripts HTML só são executados no browser e só podem fazer coisas limitadas. Mais importante ainda, eles não podem interagir com seu computador.

    Pense nisso: como o browser saberia como abrir o file? Você não acha que isso também seria uma questão de security – um site simples que desencadeia a execução de scripts no computador de um cliente? E se houvesse algo como onClick('rm -rf /home/user') ?

    Uma alternativa seria executair um applet Java, se você deseja que o código seja executado no cliente, mas isso não é exatamente o mesmo e é algo realmente complicado. Não creio que seja necessário explicair isso em detalhes.


    Se o script estiview no server: Se você quiser executair um script no lado do server e ter o user acionair sua execução, então você precisa usair uma linguagem de programação do lado do server. Apenas o HTML não o faz, porque é mais ou less um file static. Se quiser interagir com o server, você poderia, por exemplo, usair o PHP .

    Ele possui a function exec paira executair um script de linha de command que está airmazenado no server web. Então, basicamente, você poderia escreview exec('/path/to/name.sh'); e executairia o script no server.

    No entanto, basta colocair isso no onClick não é suficiente aqui. Se ainda não conhece o PHP e a programação web do lado do server, talvez você queira ler alguns tutoriais primeiro e, em seguida, voltair com uma questão mais específica.


    Se você tiview um file php com o command exec(...) apropriado, certifique-se de que o script tenha permissions de execução definidas não apenas paira o user, mas também paira o grupo no qual o server da Web está, então, no caso mais simples, apenas 777 .

    Em caso de problema viewificair o valor de return do script com echo exec(...); paira view se há algum erro.

    Você também pode executair o script a pairtir da linha de command e não do browser com php /path/to/file.php .

    Você precisa de alguma inteligência do lado do server paira isso. O HTML por si só não é suficiente, porque é static. Uma maneira comum seria php. Muitas ofertas hospedadas têm php instalado por padrão.

    Você pode usair um programa ftp paira colocair um file de text no diretório raiz do seu server.

    O file de text pode ser chamado "run.php" com o seguinte conteúdo:

     <h3>Executing /path/to/name.sh</h3> <? exec('/path/to/name.sh'); ?> 

    Digamos que seu domínio é "example.com", se você visitair esta página em seu browser:

    http://example.com/run.php

    então o file php será executado no server. Ele enviairá uma página HTML paira o browser com o título. E o script será executado no server.

    Há algumas coisas a ter em mente e algumas possíveis melhorias:

    1) todos poderão bater nesta página, também robôs. Você poderia proteger a página com htacces.

    2) Esta página será triggersda no caso de um request normal "GET" do browser. Mas ele invoca uma ação no server, e se esta ação muda dados ou faz algo importante, seria melhor apenas triggersr o script em uma solicitação POST.

    3) Você pode inserir uma declairação de formulário / button paira poder recairregair / executair novamente a página. Certifique-se de usair o método correto (GET ou POST) no atributo do método da declairação de formulário HTML.

    4) Seria bom obter o resultado do script shell (código rturn e talvez saída de text) e escrevê-lo no browser. Isso tem problemas suficientes paira uma pergunta sepairada:)

    Pode ser uma questão de permissão.

    Quando você dispairou usando o webapp , é apache que executa o script. Se o apache não tiview permissão paira executair o script, ele não funcionairá.

    Solução: viewifique a permissão e tente novamente .. 🙂

    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.