我正在尝试打开多个连接(各种设备)以运行命令并获取输出。
问题是我必须“一次全部” /并行运行它们。
如果我等待一个结果然后运行另一个结果,则需要花费太长时间
以及大量可能会变得非常糟糕的设备。
我也在使用curl,我知道它有curl_multi,我想知道php的SSH是否有类似的东西。
我现在正在使用Net_SSH2。
请您参考如下方法:
您将需要使用两个PHP库:https://robo.li/tasks/Remote/#ssh和https://github.com/cheprasov/php-parallel。您的类方法可能类似于以下示例:
function runParallelSSH() {
$parallel = new Parallel(new ApcuStorage());
foreach ($credentials as $user => $host) {
$connection = sprintf('%s@%s', $user, $host);
$connections[] = $connection;
$Parallel->run($connection, function() {
$gitTask = $this->taskGitStack()
->checkout('master')
->pull();
});
}
$results = $parallel->wait($connections);
}




