config/remote.php
'connections' => [ 'production' => [ 'host' => '10.11.10.11', 'username' => 'hogehoge', 'password' => 'hogepassword', 'key' => '', 'keytext' => '', 'keyphrase' => '', 'agent' => '', 'timeout' => 10, ], ],
Config::set('remote.connections.production.host', 'XXX.XXX.XXX.XXX'); Config::set('remote.connections.production.username', 'XXXXXX'); Config::set('remote.connections.production.password', 'XXXXXXXX'); SSH::into('production')->run(array( 'cd /home/taro', 'touch aloha', ));
標準出力に規定のバイト数以上の出力が格納される場合、クロージャ内の処理が複数回実行されてしまう罠もあるらしい
https://sharediary.net/2019/05/11/sshruncommand-functionoutput%E3%81%AE%E7%BD%A0/
これだとクロージャー内なので、$outputには何も入りません。
$output = '' \SSH::into('production')->run(array( 'hostname', 'uptime', ),function($line){ $output .= $line; });
下記のようにuseで変数を使うと、標準出力を変数に入れる事ができます。
$output = '' \SSH::into('production')->run(array( 'hostname', 'uptime', ),function($line) use(&$output){ $output .= $line; });