ero*_*ppa 2 unix linux bash shell scripting
我有以下bash脚本,它列出了httpd进程的当前数量,如果它超过60,它应该给我发电子邮件.这种方式有80%的时间可以工作,但由于某些原因,有时它会在不超过60时通过电子邮件发送给我.任何想法?
#!/bin/bash
lines=`ps -ef|grep httpd| wc -l`
if [ "$lines" -gt "60" ]
then
mailx -s "Over 60 httpd processes" me@me.com < /dev/null
fi
Run Code Online (Sandbox Code Playgroud)
httpd进程可能会完成或启动,或两者兼而有之.因此,进程的数量可以不同.grep流程包含在流程中(大多数情况下,可能会ps在grep启动之前完成).避免这种情况的一种简单方法是将命令更改为ps -ef | grep [h]ttpd.这将确保grep不匹配grep [h]ttpd.pgrep,这可能更适合你的目的.grep ... | wc -l通常可以替换为grep -c ....