memory - Unix CPU/内存监控
问题描述
我想开发可以监控许多 Unix 客户端的 CPU/内存份额的程序。
用 C 编写的 Unix 客户端程序运行命令 popen 以获取 CPU / 内存信息并使用套接字将其发送到服务器。
例如,在 Solaris 11 上,使用以下命令获取 CPU / 内存信息。
CPU : top -n 1 |grep "CPU"|sed -n 1p|awk '{print $3}'|sed 's/[^0-9.0-9]//g'|awk '{print 100-$1}'
Memory : top -n 1 |grep \"Mem\" |awk '{print $2, $5}'|sed 's/[^0-9]/ /g'|awk '{print $2/$1*100}'
这里有一个问题。
Solaris 9、10 没有 top 命令。
HP-UX 不能使用 grep,因为它不能执行一次命令。
AIX 的 topas 也是如此。
如果您有其他命令或方式,请推荐给我。
解决方案
您知道在 HP-UX 中您可以使用一目了然。你可以使用 top 但这不是一个更好的决定。
推荐阅读
- android - 背景任务问题
- jquery - 无法在点击事件上传递自定义数据
- angular - 在 Angular 中捕获和处理后端错误
- ios - 无法将 CLLocationCoordinate2D 转换为 (CLLocationCoordinate2D)
- sql - 考场使用Oracle SQL的座位安排
- python - 使用 Pip 在 Windows 10 机器上安装 Pyopencl 时遇到问题
- reactjs - 使用 Axios 获取 Json 并迭代 ReactStrap Table 中的数据
- angular - 我的 Firebase 网站没有部署,我遵循了文档
- boost - 将 boost::geometry::svg_mapper 与自定义多边形一起使用
- c# - 打印路径名称以 \n 开头