|
我想让genmon输出类似"255M 8%"格式的文本, 指示内存和CPU占用率。xfce4-genmon-plugin会定时调用指定的shell scripts,所以我对着手册写了一个, 但于到了两个问题:
1: 这个脚本需要export变量, 但xfce4-genmon-plugin似乎不能调用"source genmon.sh",没反应。 如果把变量存到临时文件中,硬盘灯又一直闪。 还有没有其他方法? 或者是有直接读取CPU占用率的命令?
2: 光运行这个脚本身就占用了3%CPU, 如何优化?
- #!/bin/bash
- # 脚本 genmon.sh
- # 以较频繁的频率运行"source genmon.sh", 可持续输出当前内存占用和CPU占用率
- GENMON_MEM=`free -m | grep '+' | gawk '{print $3}'`
- GENMON_PREV_CPU_USED=$GENMON_CPU_USED
- GENMON_PREV_CPU_TOTAL=$GENMON_CPU_TOTAL
- export GENMON_CPU_USED=` grep "cpu " /proc/stat | gawk '{print $2+$3+$4}'`
- export GENMON_CPU_TOTAL=` grep "cpu " /proc/stat | gawk '{print $2+$3+$4+$5}'`
- let "GENMON_CPU_TOTAL_DELTA = GENMON_CPU_TOTAL - GENMON_PREV_CPU_TOTAL"
- if [ $GENMON_CPU_TOTAL_DELTA ]
- then
- let "GENMON_CPU_USED_DELTA = GENMON_CPU_USED - GENMON_PREV_CPU_USED"
- let "GENMON_CPU_USAGE = GENMON_CPU_USED_DELTA * 100 / GENMON_CPU_TOTAL_DELTA"
- else
- GENMON_CPU_USAGE=0
- fi
- echo $GENMON_MEM"M" $GENMON_CPU_USAGE"%"
复制代码 |
|