legobox-co / quick-ssh
此包最新版本(v0.1.0)没有提供许可证信息。
ssh包,用于连接服务器
v0.1.0
2018-05-13 21:19 UTC
Requires
- php: ^7.1.3
- codeaken/sshkey: ^1.2
- laravelcollective/remote: ^5.6
This package is not auto-updated.
Last update: 2024-09-29 05:49:19 UTC
README
管理到服务器的ssh连接,创建密钥,运行进程并记录结果,目前处于开发中
安装
要安装此包,只需运行
$ composer require legobox-co/quick-ssh
接下来,继续注册服务提供商,以便包对您的应用可见。在config/app.php中,并附带其门面,以便易于访问
<?php ... return [ 'providers' => [ ... Legobox\QuickSsh\SshServiceProvider::class, ... ], 'aliases' => [ ... 'QuickSsh' => 'Legobox\QuickSsh\Facades\QuickSsh::class', ... ] ]
接下来,您可以继续发布配置,以便您可以更改默认值。
$ php artisan vendor:publish --provider="Legobox\QuickSsh\SshServiceProvider"
用法
让我们看看如何使用这个库
创建SSH密钥。
为了创建ssh密钥对
use QuickSsh; $keys = QuickSsh::createKeys($value = null); $keys->publicKey // return the public key $keys->privateKey // return the private key
连接到服务器
use QuickSsh; // server options host, keytext, username $serverInstance = QuickSsh::connector($serverOptions)->connect();
运行进程
要在默认远程连接上运行命令,请使用实例上的run方法
$serverInstance->run([ 'cd /var/www', 'git pull origin master', ]);
从命令中捕获输出
您可以通过将闭包传递给run方法来捕获远程命令的“实时”输出
$serverInstance->run($commands, function($line) { echo $line.PHP_EOL; });
任务
如果您需要定义一组应始终一起运行的命令,您可以使用define方法定义一个任务
$serverInstance->define('deploy', [ 'cd /var/www', 'git pull origin master', 'php artisan migrate', ]);
一旦任务被定义,您可以使用task方法来运行它
$serverInstance->task('deploy', function($line) { echo $line.PHP_EOL; });
SFTP下载
实例包括一个简单的方法,使用get和getString方法下载文件
$serverInstance->get($remotePath, $localPath); $contents = $serverInstance->getString($remotePath);
SFTP上传
SSH类还包括一个简单的方法,使用put和putString方法将文件或字符串上传到服务器
$serverInstance->put($localFile, $remotePath); $serverInstance->putString($remotePath, 'Foo');