PHP获取linux 的 某一刻内存使用率 内存使用率 磁盘

wenbinglove 2011-12-09 11:28:35
PHP获取linux 的 某一刻内存使用率 内存使用率 磁盘

有人指导说 可以用 php 的 exec 方法 执行 shell 命令 来获取

给位大哥帮忙细说一下 或者提供其他方法 谢谢
...全文
260 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄袍披身 2011-12-11
  • 打赏
  • 举报
回复
top |col -b > top.txt
wenbinglove 2011-12-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 phpnewnew 的回复:]

另外Linux下有很多优秀的统计工具都支持生成数据的。你可以用脚本来读取这些数据分析自己需要的内容。
[/Quote]

谢谢大哥的帮助 能否 在推荐几个你说的工具
黄袍披身 2011-12-11
  • 打赏
  • 举报
回复
另外Linux下有很多优秀的统计工具都支持生成数据的。你可以用脚本来读取这些数据分析自己需要的内容。
黄袍披身 2011-12-11
  • 打赏
  • 举报
回复
我是想说上面那个计算很奇葩...

关于统计方法,可以用top 然后 输出文本来读取文本的数据.当然你得写个shell文件.

[Quote=引用 8 楼 wenbinglove 的回复:]

引用 5 楼 phpnewnew 的回复:

共有3个CPU,每个CPU利用率如下:
cpu=7.8584049196942%
cpu0=6.9921272552773%
cpu1=8.7385287976878%

......


这位大哥 有什么好的建议 指导一下 谢谢
[/Quote]
wenbinglove 2011-12-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 phpnewnew 的回复:]

共有3个CPU,每个CPU利用率如下:
cpu=7.8584049196942%
cpu0=6.9921272552773%
cpu1=8.7385287976878%

......
[/Quote]

这位大哥 有什么好的建议 指导一下 谢谢
wenbinglove 2011-12-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ohmygirl 的回复:]

phpsysinfo
[/Quote]

不太明白 麻烦说详细点 谢谢
ohmygirl 2011-12-11
  • 打赏
  • 举报
回复
phpsysinfo
黄袍披身 2011-12-11
  • 打赏
  • 举报
回复
共有3个CPU,每个CPU利用率如下:
cpu=7.8584049196942%
cpu0=6.9921272552773%
cpu1=8.7385287976878%

......
wenbinglove 2011-12-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sibang 的回复:]

<?php
$str = shell_exec('more /proc/stat');
$pattern = "/(cpu[0-9]?)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)/";
preg_match_all($pattern, $str,……
[/Quote]

非常感谢 代码我运行过了 没有问题
wenbinglove 2011-12-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 llj480028 的回复:]

这个去LINUX下proc下的文件就可以的,,像stat \meminfo 等等,挺简单的,,用exec\systerm也可以,,把如果放到数组里就可以很容易取出来了,,但是硬盘分析还是要自己算的,
[/Quote]
proc 文件 大哥 我刚接触linux不久 不太懂 能否说明白点 谢谢
www_7di_net 2011-12-09
  • 打赏
  • 举报
回复
<?php
$str = shell_exec('more /proc/stat');
$pattern = "/(cpu[0-9]?)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)/";
preg_match_all($pattern, $str, $out);
echo "共有".count($out[1])."个CPU,每个CPU利用率如下:<br>";
for($n=0;$n<count($out[1]);$n++)
{
echo $out[1][$n]."=".(100*($out[1][$n]+$out[2][$n]+$out[3][$n])/($out[4][$n]+$out[5][$n]+$out[6][$n]+$out[7][$n]))."%<br>";
}
?>
//////////////////////////////////////////////////////////////////////
<?php
$str = shell_exec('more /proc/meminfo');
$pattern = "/(.+):\s*([0-9]+)/";
preg_match_all($pattern, $str, $out);
echo "物理内存总量:".$out[2][0]."<br>";
echo "已使用的内存:".$out[2][1]."<br>";
echo "-----------------------------------------<br>";
echo "内存使用率:".(100*($out[2][0]-$out[2][1])/$out[2][0])."%<br>";
?>
//////////////////////////////////////////////////////////////////////
<?php
$str = shell_exec('more /proc/net/dev');
$pattern = "/(eth[0-9]+):\s*([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)/";
preg_match_all($pattern, $str, $out);
echo "共有".count($out[1])."个网络接口,每个网络接口利用率如下:<br>";
for($n=0;$n<count($out[1]);$n++)
{
echo $out[1][$n].":收到 ".$out[3][$n]." 个数据包,发送 ".$out[11][$n]." 个数据包<br>";
}
?>
llj480028 2011-12-09
  • 打赏
  • 举报
回复
这个去LINUX下proc下的文件就可以的,,像stat \meminfo 等等,挺简单的,,用exec\systerm也可以,,把如果放到数组里就可以很容易取出来了,,但是硬盘分析还是要自己算的,

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧