0

我有一个名为 $driveusage 的变量,其中包含以下文本块:

Filesystem     Type      Size  Used Avail Use% Mounted on
rootfs         rootfs    111G  8.7G   96G   9% /
/dev/sda1      ext3      111G  8.7G   96G   9% /
devtmpfs       devtmpfs   59M     0   59M   0% /dev
tmpfs          tmpfs      61M     0   61M   0% /dev/shm
tmpfs          tmpfs      61M  264K   60M   1% /run
tmpfs          tmpfs      61M     0   61M   0% /sys/fs/cgroup
tmpfs          tmpfs      61M   16K   61M   1% /tmp

我只需要从 rootfs 行中提取数据,将数据提取到单独的变量中(即$drivesize, $driveused, $drivefree,而不是数组),只需要size,usedavail数字,并且只需要数字(包括小数)。
请记住,该used值一旦超过9.9G,将显示为10G不带小数点),并且当使用率下降到以下时,10G将显示为9.9G

我已经尝试了每种组合,preg_replace()但我对那些复杂的表达方式并不擅长。:(

您可以提供的任何帮助将不胜感激:)

4

1 回答 1

1

这是我得到的:

$df_info = explode(' ', shell_exec("df -H / | tail -1 | tr -s ' ' | cut -d ' ' -f 2,3,4"));
$df = array(
    'size'      => $df_info[0],
    'used'      => $df_info[1],
    'available' => $df_info[2],
);

df -H /获取有关您的磁盘的人类可读信息,tail -1获取该行的最后一行(重要数字,并tr -s ' ' | cut -d ' ' -f 2,3,4获取该行中的第二、第三和第四个条目(“大小”、“使用”和“可用”)。

于 2012-12-26T05:41:45.763 回答