carloswph / phell
数据格式下获取信息和处理Linux服务器上常见任务的包装器。
v1.1.2
2021-06-10 13:56 UTC
README
Linux系统监控工具提供了一种全面的方式来检查和监控任何服务器。然而,并非每个人都想或能够一直检查命令行。此外,由于这些命令通常返回未格式化的字符串,以更友好的方式处理或存储这些数据变得具有挑战性。
此包装器提供类来执行和检索常见的shell系统命令,并以PHP友好的方式返回数据。可用的类/命令
- df
- man
- free
- lscpu
- lsmem
- vmstat (无参数)
安装
可以使用Composer安装此包:composer require carloswph/phell
用法
使用Composer,您需要使用与您要获取和解析的数据对应的shell命令的类。此外,您可能还想使用枚举类Params(),它提供了常数来修改和应用于您正在处理的shell命令的参数。
use Phell\Df; use Phell\Params; require __DIR__ . '/vendor/autoload.php'; $df = new Df([ Params::HUMAN_READABLE ]); var_dump($df->get()); // Getting a parsed array of results for the shell command /* RESULTS: array(10) { [0]=> array(6) { ["filesystem"]=> string(4) "udev" ["blocks/size"]=> string(4) "1.9G" ["used"]=> string(1) "0" ["available"]=> string(4) "1.9G" ["use_percentage"]=> string(2) "0%" ["mounted_on"]=> string(4) "/dev" } [1]=> array(6) { ["filesystem"]=> string(5) "tmpfs" ["blocks/size"]=> string(4) "382M" ["used"]=> string(4) "1.8M" ["available"]=> string(4) "380M" ["use_percentage"]=> string(2) "1%" ["mounted_on"]=> string(4) "/run" } [2]=> array(6) { ["filesystem"]=> string(9) "/dev/sda3" ["blocks/size"]=> string(4) "449G" ["used"]=> string(3) "31G" ["available"]=> string(4) "395G" ["use_percentage"]=> string(2) "8%" ["mounted_on"]=> string(1) "/" } [3]=> array(6) { ["filesystem"]=> string(5) "tmpfs" ["blocks/size"]=> string(4) "1.9G" ["used"]=> string(4) "156M" ["available"]=> string(4) "1.8G" ["use_percentage"]=> string(2) "9%" ["mounted_on"]=> string(8) "/dev/shm" } [4]=> array(6) { ["filesystem"]=> string(5) "tmpfs" ["blocks/size"]=> string(4) "5.0M" ["used"]=> string(4) "4.0K" ["available"]=> string(4) "5.0M" ["use_percentage"]=> string(2) "1%" ["mounted_on"]=> string(9) "/run/lock" } [5]=> ... and so on... } */
使用 'man' 命令
使用 'man' 命令与其他命令略有不同。为了获得响应,必须提供所需手册的bash命令。因此,在实例化类时,必须传递bash命令作为参数。
use Phell\Man; use Phell\Params; require __DIR__ . '/vendor/autoload.php'; $cpu = new Man('dir'); echo $cpu->toHtml(); // Generate the response in readable HTML var_dump($cpu->get()); // Regular response in JSON var_dump($cpu->toArray()); // Parsed response in PHP array, in which subtitles of the manual are keys
添加新命令
当然,您可以使用主要抽象类来管理任何其他shell命令并添加新类。为此,唯一必需的方法是process(),使用受保护的可见性,以及唯一的必要属性是$command,其中您将声明您的新shell命令,如下所示
namespace Phell; /** * */ class NewCommand extends AbstractCommand { protected $command = 'newcommand'; protected function process($shell) { // Process and parsing } }
此外,尽管您始终可以在新命令中找到其他方式来处理附加参数,但我们鼓励您使用枚举类Params来执行此操作——因为一些必要的参数可能就在那里。
可用命令
此包仍在开发中,因此最终将添加新命令。请定期检查README文件并更新包以获取对它们的访问权限。
可用命令: df, free, lscpu, lsmem, vmstat
进行中: iostat, uptime, groups