执行 shell 脚本:

<?php
$output = shell_exec('./script.sh');
echo $output;
?>
或者
<?php
$connection = ssh2_connect('hostname', 22);
ssh2_auth_password($connection, 'username', 'password');$stream = ssh2_exec($connection, 'sh /path/to/script.sh');
stream_set_blocking($stream, true);
$output = stream_get_contents($stream);echo $output;
?>
首先使用 ssh2_connect 函数连接到远程主机,然后使用 ssh2_auth_password 函数进行身份验证。接下来,使用 ssh2_exec 函数执行 shell 脚本,将其输出流作为结果返回。最后,使用 stream_set_blocking 函数和 stream_get_contents 函数从输出流中读取输出并显示。
 或者使用system
system('./script.sh')
注意:需要安装和启用 libssh2 扩展,才能使用 ssh2_exec 函数。
stream_set_blocking 函数是 PHP 中的一个流函数,用于设置流的阻塞模式。在本例中,我们使用 ssh2_exec 函数执行 shell 脚本,并通过流读取其输出。如果不将流设置为阻塞模式,则脚本可能会在输出流未完全读取之前结束,从而导致数据丢失。通过将流设置为阻塞模式,可以确保脚本在完全读取流之前不会结束,从而保证完整的输出。

执行 shell 命令:

<?php
$output = shell_exec('ls -l');
echo $output;
?>

system ssh2_exec 有什么区别?

ssh2_exec 函数是 PHP 中的一个扩展函数,可以用来在远程主机上执行命令。它是 libssh2 库的一部分,用于实现 SSH2 协议的功能。

system 函数是 PHP 内置的函数,可以在本地或远程主机上执行命令。与 ssh2_exec 相比,它在功能上更加基础,不支持直接通过 SSH 协议执行命令。

因此,如果你想在远程主机上执行命令,并且需要使用 SSH 协议,那么你应该使用 ssh2_exec 函数。如果只是在本地主机上执行命令,或者不需要使用 SSH 协议,那么可以使用 system 函数。

点赞(1) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部