-1

これはばかげた質問かもしれませんが、これができれば素晴らしいことです。私のウェブサイトにカスタムメイドの管理セクションがあります。このファイル /opt/webalizerScript.sh を 1 日 1 回実行するように cron ジョブを設定していますが、webalizer からのトラフィック統計の最新情報が必要なときはいつでも、管理セクションからそのコマンドを簡単に実行できるようにしたいと考えています。スクリプトを手動で頻繁に実行するつもりはなく、自動化のためには 1 日 1 回で十分なので、実際には cron を編集したくありません。確かに、シェルでスクリプトを実行できることはわかっていますが、それでは、私がやろうとしていることの目的全体が無効になります。

4

2 に答える 2

2

HTTP リクエストへの応答としてスクリプトを実行することは、まさに CGI の定義です。

スクリプトは、リクエストの詳細を反映するいくつかの環境変数と、いくつかの標準入力を受け取ります。最後に、それが出力するものは何でもクライアントに送信されます。出力Content-Type: text-plain(またはその他のコンテンツ タイプ) の後に、最初に空白行を追加する必要があります。

CGI を提供するための Web サーバーの構成を検討してください。cgi-binApache では、ほとんどの場合、スクリプトをディレクトリに配置するだけで済みます。

それはあなたが始めるのに十分なはずです. 詳細については、CGI に関するチュートリアルがたくさんあります。

于 2012-08-02T01:42:56.347 に答える
2

Amadan の回答は良い概要ですが、デモンストレーションとして単純な php スクリプトに落とし込むと思いました。このスクリプトは、bash が Web サーバーのデフォルトのシェルであることを前提としています。

demo.php は「ls -alFh」を実行しますが、任意のコマンドに置き換えることができます

<html>
  <head>
    <title>Output of my bash script</title>
  </head>
  <body>
    <h1>Output of my bash script</h1>
<pre>
<?php system("ls -alFh", $rc); ?>
</pre>
    <br>
    <?php echo "Return Code: {$rc}\n"; ?>
  </body>
</html>
于 2012-08-02T02:13:44.620 に答える