[英]Run command from different server using ssh2_exec() - php
有2个服务器(服务器A和服务器B)。 服务器A将发送命令,服务器B执行该命令。
我尝试从服务器A运行以下代码,以指示服务器B完成一项工作,并且工作成功:
$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文件,则会出现问题,它似乎根本没有运行。 下面是我的示例代码来运行.sh文件
$connection = ssh2_connect('serverB.com', 22);
ssh2_auth_password($connection, 'username', 'password');
ssh2_exec($connection, './var/www/bbb_clean.sh');
var_dump($connection);
如果我从服务器B手动运行bbb_clean.sh,它将正常工作。 请帮我。
我将尝试使用phpseclib(一个纯PHP SSH实现) ,并启用日志记录以查看发生了什么。 例如。
<?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();
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.