2011-08-01 10 views
1

ウェブページにLinuxシェルの出力を表示する方法が必要です。私は多くのwebshel​​lsがあることを知っているが、それらのどれも私は(トップのようなコマンドで出力を変更する時間を表示させることはできません...)、私はシェルベースのネットワークアナライザが必要なので、継続的に実行する必要があります。 これを行う簡単な方法はありますか?私は、シェルとのやり取りや、指定されたコマンドの出力だけを必要としません。シェルのウェブ出力

事前に感謝 Lopoc

+0

出力をテキストファイルに書き込み、ファイルを表示します。 – Quasdunk

+0

コマンドを一度実行し、出力して終了します。次に、出力を表示するページを要求するたびに、そのページが更新されます。さらに、ページを自動的に更新するHTMLヘッダータグにメタヘッダーを設定することもできます。ブラウザでリフレッシュを設定することもできます(Operaなど)。 – hakre

+0

それほど簡単ではありません...topのようなコマンドは終了しないので、その出力をファイルにリダイレクトする簡単な方法はありません。 – Lopoc

答えて

6

PHPでは、あなたはexec()を使用することができます。http://www.php.net/manual/en/function.exec.php

$last = exec('ls', $o, $r); 

$oは、出力を保持し、$rは、リターンコードを保持し、$lastは、出力の最後の行を保持します。一般的に、あなたは一般的にそれが好き使用します:

$last = exec('ls', $o, $r); 
if ($r != 0) 
{ 
    print 'Error running command'; 
    exit($r); 
} 
else 
    print implode("\n", $o); 

topは対話型プログラムで、コマンドは永遠に継続し、PHP/EXEC()、それが終了するのを待ってまいります。 「バッチモード」にはtop -b -n1を使用できます。 topの引数の詳細については、top(1)を参照してください。

任意のコマンドで機能するより汎用的なソリューションが必要な場合は、xmlrpcスクリプトから実行されるpopen()(またはproc_open())を使用できます。これははるかに複雑な設定ですが、UNIXのプロセス制御に関する知識が必要でした。これを正しく行うことはまったく簡単です...

PS:topの引数はOSによって異なります。 Linuxではtop -b -n 1、FreeBSDではtop -b 999(ここで999は表示する行数)です。これはあなたのために重要なのかどうかはわかりませんが、頭の後ろにとどめるのは良いことです。

1

あなたが起動するプログラムに応じて、あなたがスナップショットの形で探しているの出力が得られます

$ top -n1 

のようなスイッチがあるはずです。

出力するPHPスクリプトを必要な秒数の後に自動的に更新します。

<meta http-equiv="refresh" content="5"> 

例:5秒後に実際のページを更新し

ほとんどのブラウザで動作しますそうする一般的な方法はとてもMeta Refreshと呼ばれるを追加することです。

0

quick google search利回りjavassh.orgをサポートし、一般的なCGIモジュールに見てみたいことがあります別の言語を習得したくない場合。私は他の人がいると確信しています。

関連する問題