====== 40 Laravel SSH/SCP ====== ===== 設定ファイル ===== '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://qiita.com/tricogimmick/items/3e344486658e3cfbd407|クロージャー]] 標準出力に規定のバイト数以上の出力が格納される場合、クロージャ内の処理が複数回実行されてしまう罠もあるらしい [[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; }); {{tag>Laravel}}