免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5151 | 回复: 9
打印 上一主题 下一主题

php调用linux df命令,查看硬盘使用情况 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-23 18:18 |只看该作者 |倒序浏览
本帖最后由 sbwfnhn 于 2011-03-23 18:19 编辑

看到有人用php,查看linux服务器硬盘使用情况,是php调用linux df命令
这样的好处就是:
1,可以在apache上作权限,指定有权限的IP才能查看硬盘空间
2,不用登录服务器就能知道服务器硬盘使用情况,增加了服务器的安全性
3,可以把这个交给前台人员查看,数据快满时,前台人员打电话通知管理人员处理数据。(管理人员常出去忙其它事情)

由于服务器数据经常爆满,要备份,这个方法很好

没有接触过php,不知道怎么弄

论坛徽章:
0
2 [报告]
发表于 2011-03-24 13:15 |只看该作者
像nagios之类的软件不就行了吗。

论坛徽章:
0
3 [报告]
发表于 2011-03-24 17:21 |只看该作者
回复 1# sbwfnhn


    Linux df命令是学习Linux管理的一个应用的一个简单的命令,但是简单的命令有时会给我们以巨大的帮助,这里详细介绍一下Linux df命令的使用。

  df命令详细用法

  a:显示全部的档案系统和各分割区的磁盘使用情形

  i:显示i -nodes的使用量

  k:大小用k来表示 (默认值)

  t:显示某一个档案系统的所有分割区磁盘使用量

  x:显示不是某一个档案系统的所有分割区磁盘使用量

  T:显示每个分割区所属的档案系统名称

  常用命令:df –hi

  操作详解

  引用

  指令 df 可以显示目前所有档案系统的最大可用空间及使用情形,请看下列这个例子:

  # df –h

  Filesystem Size Used Avail Capacity Mounted on

  /dev/ad0s1a 1.9G 389M 1.4G 21% /

  devfs 1.0K 1.0K 0B 100% /dev

  /dev/ad0s1d 989M 54K 910M 0% /tmp

  /dev/ad0s1f 4.8G 3.8G 657M 86% /usr

  /dev/ad0s1e 1.9G 149M 1.6G 8% /var

  /dev/ad0s1g 26G 890K 24G 0% /volume2

  /dev/da0s1d 325G 261G 38G 87% /volume1

  我们加了参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。

  上面的指令输出的第一个字段及最后一个字段分别是档案系统及其挂入点。我们可以看到 /dev/ad0s1a 这个分割区被挂在根目录下。我们在上一小节提到过 ad 所代表的是 IDE 的硬盘,而 s1 表示第一个主要扇区。我另外有一个 SCSI 硬盘,它的代号是 da,它的容量很大,主要用来存放数据。devfs 是一个特别的档案系统,该档案系统并非真的磁盘,而是 FreeBSD 用来管理系统硬件装置的虚拟档案系统。

  接下来的四个字段 Size、Used、Avail、及 Capacity 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。

  另外,我们还可以使用参数 -i 来查看目前档案系统 inode 的使用情形。有的时候虽然档案系统还有空间,但若没有足够的 inode 来存放档案的信息,一样会不能增加新的档案。

  # df –ih

  Filesystem Size Used Avail Capacity iused ifree %iused Mounted on

  /dev/ad0s1a 1.9G 389M 1.4G 21% 20495 262127 7% /

  devfs 1.0K 1.0K 0B 100% 0 0 100% /dev

  /dev/ad0s1d 989M 62K 910M 0% 24 141286 0% /tmp

  /dev/ad0s1f 4.8G 3.8G 657M 86% 311439 348015 47% /usr

  /dev/ad0s1e 1.9G 149M 1.6G 8% 1758 280864 1% /var

  /dev/ad0s1g 26G 890K 24G 0% 12 3532786 0% /volume2

  /dev/da0s1d 325G 261G 38G 87% 707277 43311409 2% /volume1

  我们可以看到根目录的已经用掉的 inode 数量为 20495,还有 262127 的可用 inode。

  这样理解了Linux df命令的使用和操作了吧。

论坛徽章:
0
4 [报告]
发表于 2011-03-24 17:22 |只看该作者

论坛徽章:
0
5 [报告]
发表于 2011-03-27 20:33 |只看该作者
你讲的不对,如果Php可以执行exec函数,反而降低的系统的安全性,你使用证书登陆服务器安全很高了

论坛徽章:
0
6 [报告]
发表于 2011-03-30 20:00 |只看该作者
本帖最后由 sbwfnhn 于 2011-03-30 20:06 编辑

5楼的不对,通过防火墙设置或httpd设置,只允许内网的一机器访问,就是前台,我不允许别人登录服务器,如果可以让其它用户登录服务器的话,谁都可以查看服务器内容了。

这么复杂?可惜不懂php,有人在redhat5.5下这么做的。就要如下效果就可,别人做的

文件系统           容量  已用 可用 已用% 挂载点
/dev/hda3            18G  4.0G   13G  24% /home
/dev/hdb1            99M   12M   82M  13% /dat

论坛徽章:
0
7 [报告]
发表于 2011-03-31 10:47 |只看该作者
{:2_169:}

论坛徽章:
0
8 [报告]
发表于 2011-03-31 12:26 |只看该作者
php里用这个几行
<?php
$test = "df -h /dev/hda2";
exec($test,$array);
print_r($array);
?>
但出来的是如下,不会分行,看得很累,而且还有array([0])出来,有什么办法对上
Array ( [0] => Filesystem Size Used Avail Use% Mounted on [1] => - 506M 96K 506M 1% /dev )

需要如下效果
[root@localhost ~]# df -h /dev/hda2
文件系统              容量  已用 可用  已用%  挂载点
-                             506M   96K  506M   1%   /dev

论坛徽章:
0
9 [报告]
发表于 2011-03-31 12:40 |只看该作者
除了上面代码可以,还可以下面,但不会分行,就一个字,乱
2、system函数

<?php
$test = "df -h /dev/hda";
$last = system($test);
print "last: $last\n";
?>
输出结果:
Filesystem Size Used Avail Use% Mounted on - 506M 96K 506M 1% /dev last: - 506M 96K 506M 1% /dev
不会分行,乱七八糟

3、passthru函数
<?php
$test = "df -h /dev/hda";
passthru($test);
?>
输出结果:Filesystem Size Used Avail Use% Mounted on - 506M 96K 506M 1% /dev
试了也可以,就是不会分行,对应不上

论坛徽章:
0
10 [报告]
发表于 2011-04-02 13:33 |只看该作者
<?php
$a=`df -h /dev/hda1`;
echo '<pre>';
echo $a;
echo '</pre>';
?>

结果如下:
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1              99M   12M   82M  13% /boot
{:2_172:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP