免费注册 查看新帖 |

Chinaunix

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

一个关于grep 取值的问题 [复制链接]

论坛徽章:
1
丑牛
日期:2014-05-22 15:38:58
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-15 18:40 |只看该作者 |倒序浏览
想在一个脚本里实现这个功能:

检测一个指定的进程,如果查出来值不等于0,则说明进程存在,KILL,如果KILL不掉,则发邮件通知。

我用grep 的时候发现,即使进程不存在了,但是用ps aux|grep -c 进程名 的时候还会显示1个进程。

没有终止ntp之前:

# ps aux|grep ntp
root       847  0.0  0.0  61188   724 pts/1    S+   10:38   0:00 grep ntp
ntp       3521  0.0  0.1  19188  4888 ?        SLs  Feb22   0:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
[root@host smallfish]# ps aux|grep -c ntp
2

终止ntp之后
# service ntpd stop
Shutting down ntpd:                                        [  OK  ]
[root@host smallfish]# ps aux|grep -c ntp
1

用什么参数能让我终止进程之后,在用ps aux|grep ntp的时候显示0?不然我脚本里判断的时候,如果不是0就认为这个进程还存在的。

论坛徽章:
0
2 [报告]
发表于 2011-03-15 18:51 |只看该作者
回复 1# smallfish


    ps aux|grep -v "grep "|grep -c ntp

论坛徽章:
0
3 [报告]
发表于 2011-03-15 19:03 |只看该作者
因为 grep 也是一个进程 ,所以即使没有该进程, 也能打印出信息

论坛徽章:
0
4 [报告]
发表于 2011-03-15 19:54 |只看该作者
利用[]或者grep -v:
一下两种效果相同,建议用第一种:
  1. [tdlteman@hzling11:~]-No.105->$ ps -ef | grep -c [n]tp
  2. 1
  3. [tdlteman@hzling11:~]-No.106->$ ps -ef | grep -v grep | grep -c ntp
  4. 1
复制代码

论坛徽章:
1
丑牛
日期:2014-05-22 15:38:58
5 [报告]
发表于 2011-03-15 22:02 |只看该作者
本帖最后由 smallfish 于 2011-03-15 22:03 编辑

谢谢楼上的几位兄弟!!你们说的2种办法测试过,都可以!

非常感谢!
楼上杭州的兄弟,有空多交流啊!都是杭州的

论坛徽章:
0
6 [报告]
发表于 2011-03-16 07:41 |只看该作者
其实你不判断是不是0,判断是否大于1不就得了?

论坛徽章:
0
7 [报告]
发表于 2011-03-16 09:40 |只看该作者
试试pgrep,你懂的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP