我有一个名为$ 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
,used
和avail
数字,仅限数字(包含小数)。
请注意,used
值一旦超过9.9G
,就会显示为10G
(没有小数点),当有效值低于{{ {1}}将显示为10G
。
我已经尝试了9.9G
的每个组合,但我对这些复杂的表达方式并不满意。 :(
非常感谢您提供的任何帮助:)
答案 0 :(得分: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
获取第二,第三和第四个条目(“在该行中大小“,”使用“和”有效“。