执行 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 函数。