2012-03-22 19 views
0

2台のサーバー(サーバーAとサーバーB)があります。サーバーAはコマンドを送信し、サーバーBはそれを実行します。実行]コマンド() - PHP

私は、サーバーBが仕事をし、それが成功した作業指示するサーバAから実行されている以下のコードを試してみた:

$connection = ssh2_connect('server.com', 22); 
ssh2_auth_password($connection, 'username', 'password'); 

ssh2_exec($connection, 'mv /var/www/test.php /root'); 

var_dump($connection); 

上記のコードから、それがルートフォルダにtest.phpを移動します。同じコードを使用して.shファイルを実行しようとすると、問題が発生します。全く実行されていないようです。私は、サーバBから手動bbb_clean.shを実行すると以下の私のコード例は、

$connection = ssh2_connect('serverB.com', 22); 
ssh2_auth_password($connection, 'username', 'password'); 

ssh2_exec($connection, './var/www/bbb_clean.sh'); 

var_dump($connection); 

.SHファイルを実行することで、それが動作します。私を助けてください。

答えて

0

私はphpseclib, a pure PHP SSH implementationを使用して、何が起こっているかを確認するためにログを有効にしようとするだろう。例えば。

<?php 
include('Net/SSH2.php'); 
define('NET_SSH2_LOGGING', NET_SSH2_LOG_COMPLEX); 

$ssh = new Net_SSH2('www.domain.tld'); 
if (!$ssh->login('username', 'password')) { 
    exit('Login Failed'); 
} 

echo $ssh->exec('pwd'); 
echo $ssh->getLog(); 
?> 
関連する問題