LinuxSir.cn,穿越时空的Linuxsir!

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

如何实现系统空闲(idle)大于某个值(比如98%),就会自动启动某个程序?

[复制链接]
发表于 2004-6-17 14:40:18 | 显示全部楼层 |阅读模式
希望大大们指教~~~

谢谢
发表于 2004-6-17 14:52:19 | 显示全部楼层
用top -n1|awk '/idle/{print $11}'来求出idle当前的百分比,存入一个变量,
然后用这个变量跟某个值去比较,就OK啦.top的次数可以自己指定
 楼主| 发表于 2004-6-17 15:02:03 | 显示全部楼层
非常感谢javalee,但是因为我对编程了解甚少,能帮我完整具体的写一下吗?

比如每隔某个时间,就会去比较一下idle的值,如果大于某个值(比如98%),就会自动启动某个程序。

再次感谢~~~
发表于 2004-6-17 15:19:08 | 显示全部楼层
大致是这样的结构:

  1. a=$(top -n1|awk '/idle/{print $11}'|tr -d %) #top一次,取idle的值
  2. if [[ $a -gt 98 ]];then    #如果这个值大于98,则启动command
  3.         command    #启动命令
  4. fi
复制代码

top的输出要根据自己的系统的输出格式而定!对shell不了解的话,
请浏览置顶区的入门文章 :thank
发表于 2004-6-17 18:27:07 | 显示全部楼层
一直不清楚 idle 的具体含义
如果基于 system load 来控制的话, 可以用 atd 和 batch 来实现
 楼主| 发表于 2004-6-18 09:41:20 | 显示全部楼层
各位大大能帮我写个具体完整的吗?我的操作系统是red hat as2版本,想实现每隔1分钟,就能自动比较系统的idle值,如果大于99%,就自动启动  ./start    这个程序。
先谢谢了~~~
发表于 2004-6-18 10:36:41 | 显示全部楼层
我上面的写的供参考,至于你说的想实现每隔1分钟,可以用crontab来作
crontab的用法见:
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=5115
 楼主| 发表于 2004-6-27 01:39:37 | 显示全部楼层
javalee,我按照你上面写的vi了一个程序,但是出现了

unexpected end of file   

的错误。

希望能够得到你的指教。
发表于 2004-6-27 02:15:01 | 显示全部楼层
指教谈不上!把你的系统,环境,说清楚些,另外,贴出你的脚本文件,这样便于查找问题所在!
 楼主| 发表于 2004-6-27 02:22:37 | 显示全部楼层
安装的是redhat9.0,程序如下

#!/bin/sh
a=$(top -n1|awk '/idle/{print $11}'|tr -d %) #top一次,取idle的值
if [[ $a -gt 98 ]];then    #如果这个值大于98,则启动command
        /usr/local/c145/start    #启动命令
fi

另外,单独运行/usr/local/c145/start    正常
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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