免费注册 查看新帖 |

Chinaunix

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

如何定时收集系统信息? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-13 08:41 |只看该作者 |倒序浏览
请各位老师指点:我们正在做一个机群的进程管理系统,现期要求收集结点资源信息。大体思路如下:各结点程序定时收集cpu,内存和硬盘的使用情况,并将之发送到服务器程序的数据表中;服务器程序根据结点的信息,判断哪些cpu空闲(利用率小于50%),哪些忙(利用率大于50%),等等,并将之发送到进程控制数据库。小弟是linux生手,只懂得分析结构,却编不出程序,后悔当初没有好好学啊!!!! 哪位老师行行好,帮我一把吧。
    分析如下:\proc下有 cpuinfo和meminfo两文件分别记录cpu和内存信息,但我不知道该如何定位筛选,如果可以,将所需信息远程拷贝到服务器端的表nodeinfo中的特定位置,服务器端程序秩序根据此信息作出逻辑判断,并将结果送到进程控制数据表中就ok了。
    望回贴,不胜感激!!

论坛徽章:
0
2 [报告]
发表于 2003-05-13 08:54 |只看该作者

如何定时收集系统信息?

那就在她们之间建立单向的信任关系,然后定期将指定文件收集到管理机在进行分析。

论坛徽章:
0
3 [报告]
发表于 2003-05-13 09:20 |只看该作者

如何定时收集系统信息?

一.如果你要实时监控可以直接用topas
二.如果要定期分析系统运行状况可以这样做:
1.编写采集原始数据的shell放入crontab定时收集(如半小时一次)
给个样本:  
LOGFILE=/tmp/CPU.`hostname`
    LINES=4800;  COUNTS=10;  COUNTS1=`expr $COUNTS + 1`;
    echo "`date '+%Y%m%d %T'` \c" >> $LOGFILE
    vmstat 1 $COUNTS1 | tail -$COUNTS | awk -v COUNTS=$COUNTS '
      BEGIN { BUSY=100 }
            { for ( i=1;i<=NF;i++) t+=$i
              BUSY = $(NF-1)<BUSY ? $(NF-1) : BUSY
            }
        END { for ( i=1;i<=NF;i++) printf " %d",t/COUNTS;
              printf " %d\n",BUSY;
            }' >> $LOGFILE
    cat $LOGFILE | tail -$LINES >$LOGFILE.$$
    mv $LOGFILE.$$ $LOGFILE
2. 定期(如一星期,一个月)根据需要处理数据,不再赘述.

论坛徽章:
0
4 [报告]
发表于 2003-05-14 08:28 |只看该作者

如何定时收集系统信息?

,谢谢两位的指点,感激不尽!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP