LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 860|回复: 3

写了一个xfce4-genmon-plugin用的scripts, 碰到了问题

[复制链接]
发表于 2007-1-9 02:01:12 | 显示全部楼层 |阅读模式
我想让genmon输出类似"255M 8%"格式的文本, 指示内存和CPU占用率。xfce4-genmon-plugin会定时调用指定的shell scripts,所以我对着手册写了一个, 但于到了两个问题:

1:  这个脚本需要export变量, 但xfce4-genmon-plugin似乎不能调用"source genmon.sh",没反应。 如果把变量存到临时文件中,硬盘灯又一直闪。 还有没有其他方法? 或者是有直接读取CPU占用率的命令?

2: 光运行这个脚本身就占用了3%CPU, 如何优化?


  1. #!/bin/bash

  2. # 脚本 genmon.sh
  3. # 以较频繁的频率运行"source genmon.sh", 可持续输出当前内存占用和CPU占用率

  4. GENMON_MEM=`free -m | grep '+' | gawk '{print $3}'`
  5. GENMON_PREV_CPU_USED=$GENMON_CPU_USED
  6. GENMON_PREV_CPU_TOTAL=$GENMON_CPU_TOTAL
  7. export GENMON_CPU_USED=` grep "cpu " /proc/stat | gawk '{print $2+$3+$4}'`
  8. export GENMON_CPU_TOTAL=` grep "cpu " /proc/stat | gawk '{print $2+$3+$4+$5}'`
  9. let "GENMON_CPU_TOTAL_DELTA = GENMON_CPU_TOTAL - GENMON_PREV_CPU_TOTAL"
  10. if [ $GENMON_CPU_TOTAL_DELTA ]
  11. then
  12.         let "GENMON_CPU_USED_DELTA  = GENMON_CPU_USED - GENMON_PREV_CPU_USED"
  13.         let "GENMON_CPU_USAGE = GENMON_CPU_USED_DELTA * 100 / GENMON_CPU_TOTAL_DELTA"
  14. else
  15.         GENMON_CPU_USAGE=0
  16. fi

  17. echo $GENMON_MEM"M" $GENMON_CPU_USAGE"%"
复制代码
发表于 2007-1-11 09:07:27 | 显示全部楼层
vmstat 可读取定点CPU占用率。不过我看你得程序是求的两次pulling之间的CPU占用率均值。这似乎和定点值不一样吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-11 13:35:55 | 显示全部楼层
下班回去试试
我那个是xfce4-cpugraph-plugin的算法
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-11 17:19:28 | 显示全部楼层
不行. 试了vmstat 1 1, 不管调用多少次, 结果一直不变
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表