2017-08-02 16 views
0

私は自分のWebページにボタンを作成しています。誰かがこのボタンを押すと、私の最初のサーバー( "cd file" "./file_to_execute"など)。これらのコマンドが完了して終了したら、別のサーバーにsshで接続して別のコマンドを実行したいと思う。 問題は、以前のコマンドがもう完了して、別のサーバーに接続する2番目の部分に進むことがどのように分かっているかです。 再開する場合: 最初のステップで最初のサーバに接続し、いくつかのコマンドを実行します =>これらのコマンドが完了すると(一部の方法は分かりません) 2番目のステップ:別のサーバに接続して他のコマンドを実行します。 私は自分のWebページをユーザーに知らせるためにいくつかのポップアップを追加する方法を模索しています。最初の手順を完了し、2番目の手順を開始しました。コマンドが実行され、別のコマンドを実行するのを知る方法(ssh-php)

<?php 
 
$hostname = '192.177.0.252'; 
 
$username = 'pepe'; 
 
$password = '*****'; 
 
$commande = 'cd file && ./file_one.sh';  
 

 
if (false === $connection_first = ssh2_connect($hostname, 22)) { 
 
    echo 'failed<br />'; 
 
    exit(); 
 
    } 
 
else { 
 
    echo 'Connected<br />'; 
 
    } 
 
    
 
if (false === ssh2_auth_password($connection_first, $username, $password)) { 
 
    echo 'failed<br />'; 
 
    exit(); 
 
    } 
 
else { 
 
    echo 'done !<br />'; 
 
    } 
 
    
 
if (false === $stream = ssh2_exec($connection_first, $commande)) { 
 
    echo "error<br />"; 
 
    } 
 
?>

おかげ

PS:私の英語のため申し訳ありませんが、私は例外が私はのtry/catchステートメントを使用することをお勧めします発生するイベントを処理するためにバルセロナ市内

答えて

0

から来たんです以下のようになります。

try { 
    echo inverse(5) . "\n"; 
    echo inverse(0) . "\n"; 
} catch (Exception $e) { 
    echo 'Caught exception: ', $e->getMessage(), "\n"; 
} 

イベントを処理しようとしているときにイベントが終了したことを知る必要がある場合は、これを実現する方法がいくつかあります。コマンドが実行された後(すでに行っているように)ブール値をtrueに設定することができます。または、出力をtxtファイルに出力し、このファイルの戻り値をエコーアウトすることで、コマンドの出力を返すことができます。あなたは$out変数に返されているもののオフに基づいて条件を作成することができます。この時点で

exec ('/usr/bin/flush-cache-mage > /tmp/.tmp-mxadmin'); 
$out = nl2br(file_get_contents('/tmp/.tmp-mxadmin')); 
echo $out; 

:以下のコードを参照してください。

関連する問題