IT序号网

php之PHP并行/异步SSH连接

xxx_UU 2026年04月16日 编程语言 52 0

我正在尝试打开多个连接(各种设备)以运行命令并获取输出。
问题是我必须“一次全部” /并行运行它们。
如果我等待一个结果然后运行另一个结果,则需要花费太长时间
以及大量可能会变得非常糟糕的设备。

我也在使用curl,我知道它有curl_multi,我想知道php的SSH是否有类似的东西。

我现在正在使用Net_SSH2。

请您参考如下方法:

您将需要使用两个PHP库:https://robo.li/tasks/Remote/#sshhttps://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); 
 
} 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!