LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: zhf6440

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

[复制链接]
发表于 2004-6-27 02:32:37 | 显示全部楼层
a=$(top -n1|awk '/idle/{print $11}'|tr -d %)
改成
a=`top -n1|awk '/idle/{print $11}'|tr -d %` #两边的是反引号,就是ESC下边的
我怀疑是shell的问题/或者首行改成:
#!/bin/bash
 楼主| 发表于 2004-6-27 12:26:00 | 显示全部楼层
照改了,还是一样的错误

: command not found
./zz: line 9: syntax error: unexpected end of file

zz的程序如下:

# /bin/bash

a=`top -n1|awk '/idle/{print $11}'|tr -d %`#topÒ»´Î,È¡idleµÄÖµ
if [[ $a -gt 99 ]];then    #Èç¹ûÕâ¸öÖµ´óÓÚ98,ÔòÆô¶¯command
./map-server.exe           #Æô¶¯ÃüÃî
fi


~
~
发表于 2004-6-27 14:40:51 | 显示全部楼层
map-server.exe 是什么文件?不会是win的可执行文件吧!
 楼主| 发表于 2004-6-27 14:59:13 | 显示全部楼层
跟程序应该没关系,那个exe文件是我故意搞上去的,换其它的也一样出现这样的错误。
发表于 2004-6-27 15:11:10 | 显示全部楼层
提示出错信息不是已经告诉你了么,
zz: line 9: syntax error: unexpected end of file
# /bin/bash
应该是#!/bin/bash而且要在首行
在第9行,监查一下!
发表于 2004-6-27 15:20:08 | 显示全部楼层
top -n1|awk '/idle/{print $11}'|tr -d %

不知怎的, 这个找不到值. 我用的下面的方法:

  1. top -bn1|grep total | awk '{print $NF}'
复制代码

所用系统inux WS3,  所用top版本: procps-2.0.13-9.2E
发表于 2004-6-27 15:54:41 | 显示全部楼层

  1. /home/lee/test #top -n1|awk '/idle/{print $11}'|tr -d %
  2. 70.3
  3. /home/lee/test #top -bn1|grep total | awk '{print $NF}'
  4. /home/lee/test #
  5. /home/lee/test #top --version
  6. procps version 2.0.11
复制代码
发表于 2004-6-27 16:25:24 | 显示全部楼层
哦, 有意思, 看来top的output结构不同的版本不一样阿. 那就没有统一的正则可言了.
发表于 2004-6-27 17:47:53 | 显示全部楼层
最初由 yongjian 发表
哦, 有意思, 看来top的output结构不同的版本不一样阿. 那就没有统一的正则可言了.

嗯,思路基本相似,但是由于系统不同,工具不同,版本不同,结果就会有很多差异,因此
具体情况具体分析就很重要啦!
发表于 2004-6-27 18:00:18 | 显示全部楼层
是, lee兄说的对.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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