2017-07-04 11 views
0

リモートサーバ上のファイルの内容をSSH経由で取得し、その結果をブラウザに表示しようとしています。PHPシェルコマンドを実行して出力を取得する

ssh router "cat /var/log/messages" 

私はトラブルにこれを取得することだ:リモートサーバーの名前とアドレスはコマンドラインから、私は成功した結果を取得するために、次のことを実行できるように、名前「ルータ」と私のローカルサーバー上に構成されていますPHPで実行する - 引用符を適切にエスケープすることはできません。ここに私のPHPスクリプト

<pre> 
$command = 'ssh router \"cat /var/log/messages\"'; 
<?php system($command); ?> 
</pre> 

だ。しかし、これは代わりに、コマンドを実行し、結果を返すのウェブページにコマンド文字列を出力します。

答えて

1

escapeshellarg()を使用して、コマンドの引数をエスケープします。このようにしてください。

+0

**任意のシェルコマンドを実行する際には**注意が必要です**。これは実際にはオプションではないので、あなたは['escapeshellarg'](http://php.net/manual/en/function.escapeshellarg.php)を使用していることは素晴らしいことです。 – tadman

関連する問題