ユーザ用ツール

サイト用ツール


サイドバー



最近の更新



Tag Cloud

タグ数量
9
10
1
3
1
2
17
7
1
1
4
13
4
1
2
309
1
9
2
7
21
5
1
31
3
3
1
6
1
1
46
1
3
3
1
1
1
1
1
1
33
46
7
9
10
8
10
3
21
2
9
2
2
6
9
1
1
6
12
4
3
3
2
1
8
2
4
1
6
30
2
12
5
3
1
1
2
3
2
1
3
4
3
3
4
2
2
1
1
2
1
2
1
2
1
27
2
1
3
2
2
1
1
2
3
17
5
9
1
1
2
16
2
6
1
2
12
1
3
1
1
4
11
1
6
4
2
7
1
3
3
13
1
4
1
1
10
3
1
17
3
1
5
1
2
1
1
2
9
2
2
3
2
1
3
1
3
1
2
2
2
1
2
6
1
4
3
5
1
3
1
3
3
2
1
1
30
1
3
3
1
1
1
5
5
1
36
2
4
2
1
2
2
3
1
1
1
4
1
2
1
3
1
1
1
2
5
2
5
2
1
1
1
5
3
2
4
4
1
2
2
25
1
1
3
4
1
1
2
1
1
2
1
1
1
1
2
1
1
1
1
1
19
7
1
5
1
1
3
1
2
1
1
2
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
4
2
1
1
2
2
2
1
1
2
1
1
12
1
1
1
1
1
1
1
1
1
1
1
1
1
11_php:02_framework:01_laravel:40_laravel_ssh

40 Laravel SSH/SCP

設定ファイル

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;
}); 
11_php/02_framework/01_laravel/40_laravel_ssh.txt · 最終更新: 2020/02/21 17:16 by matsui

Yesterday:860 Today:876 Total:237489