Php 已连接设备的命令行输出排序

Php 已连接设备的命令行输出排序,php,ubuntu,shell-exec,Php,Ubuntu,Shell Exec,我在我的Raspberry PI上使用PHP,我试图在USB驱动器上找到一个文件,这将在每分钟的cron作业中 该文件有一个我每次都会知道的名称(settings.txt),我有必要的输出来确定我有哪些驱动器。。 现在我想不出如何对它们进行分类 我正在将它们全部写入一个文本文件,但它们不是每行都用\n隔开,也不是在它们之间用\t隔开。。。如何获得“挂载”的值 输出: Filesystem 1K-blocks Used Available Use% Mounted on /dev/r

我在我的Raspberry PI上使用PHP,我试图在USB驱动器上找到一个文件,这将在每分钟的cron作业中

该文件有一个我每次都会知道的名称(settings.txt),我有必要的输出来确定我有哪些驱动器。。 现在我想不出如何对它们进行分类

我正在将它们全部写入一个文本文件,但它们不是每行都用\n隔开,也不是在它们之间用\t隔开。。。如何获得“挂载”的值

输出:

Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        3648564 3479396    152784  96% /
devtmpfs          469756       0    469756   0% /dev
tmpfs             474060     452    473608   1% /dev/shm
tmpfs             474060    6928    467132   2% /run
tmpfs               5120       4      5116   1% /run/lock
tmpfs             474060       0    474060   0% /sys/fs/cgroup
/dev/mmcblk0p1     65480   20256     45224  31% /boot
tmpfs              94812      48     94764   1% /run/user/1000
/dev/sda1       15625744 5330752  10294992  35% /media/kristian/D81C-745F
设备信息: 操作系统:Ubuntu Mate 15**
PHP:5.6

我会使用awk来实现这一点。默认情况下,它按空间分割。我的Mac电脑是9美元,我的一个Centos盒子是6美元。这取决于您的值是哪一列。看起来是6美元

df  | awk '{print $6}'                                                                       

Mounted
/
/tmp
/usr/local
/var
/dev
/Volumes/MobileBackups
/Volumes/AppCode
/Volumes/LaCie

我会用awk来做这个。默认情况下,它按空间分割。我的Mac电脑是9美元,我的一个Centos盒子是6美元。这取决于您的值是哪一列。看起来是6美元

df  | awk '{print $6}'                                                                       

Mounted
/
/tmp
/usr/local
/var
/dev
/Volumes/MobileBackups
/Volumes/AppCode
/Volumes/LaCie

我想我可以在搜索数小时后使用此代码:

<?php
$df = array();
echo "reading `df` command \n";
exec("df -T -x tmpfs -x devtmpfs -P -B 1G",$df);
array_shift($df);
$Stats = array();
foreach($df as $disks){
    $split = preg_split('/\s+/', $disks);
    $Stats[] = array(
        'disk'      => $split[0],
        'mount'     => $split[6],
        'type'      => $split[1],
        'mb_total'  => $split[2],
        'mb_used'   => $split[3],
        'mb_free'   => $split[4],
        'percent'   => $split[5],
    );
}
echo "Completed device scan... \n";

我想我可以在搜索数小时后使用此代码:

<?php
$df = array();
echo "reading `df` command \n";
exec("df -T -x tmpfs -x devtmpfs -P -B 1G",$df);
array_shift($df);
$Stats = array();
foreach($df as $disks){
    $split = preg_split('/\s+/', $disks);
    $Stats[] = array(
        'disk'      => $split[0],
        'mount'     => $split[6],
        'type'      => $split[1],
        'mb_total'  => $split[2],
        'mb_used'   => $split[3],
        'mb_free'   => $split[4],
        'percent'   => $split[5],
    );
}
echo "Completed device scan... \n";