shell script to count httpd processes
Steve Kozakoff
kozaksj at shands.ufl.edu
Mon Mar 14 22:21:38 UTC 2005
I would recommend looking for the full path, in case (like me) you have
other things with the string "httpd" in the name.
for i in `ps -afe | grep /usr/sbin/httpd | grep -v grep | awk '{print
$2}'`
do
COUNT=$((COUNT+1))
done
echo $COUNT
(Another) Steve
>>> steve at ibapp.com 3/14/2005 15:35:03 >>>
At 01:43 PM 3/14/2005, you wrote:
> > I am trying to create a shell script with /bin/sh that will
> > count how many httpd processes are running at the time.
> > This is how it would look as a perl script:
> > ---start of script---
> > #!/usr/bin/perl
> > $count = 0;
> > @hits = (`ps -afe | grep httpd | grep -v grep`);
> > foreach $entry (@hits) {
> > $count++;
> > }
> > print "$count\n";
> > ---end of script---
> >
> > I am trying to do this in an sh script. Partly for learning
> > partly because I want to do some other things to, but can
> > only know how to do them in a shell script. Any help would
> > be greatly appreciated.
>
>The following shell script should do the trick:
>
>--- start of script ---
>#!/bin/bash
>
>COUNT=`ps -aef | grep httpd | grep -c -v grep`
>
>echo $COUNT
>--- end of script ---
>
>If the reason for your question is to understand how to use a for
loop, the
>following script will also work:
>
>--- start of script ---
>#!/bin/bash
>PROCIDLIST=`ps -aef | grep httpd | grep -v grep | awk '{print $2}'`
>for PROCID in $PROCIDLIST
>do
> COUNT=$((COUNT+1))
>done
>
>echo $COUNT
>--- end of script
>
>Please note there is another syntax for the 'for' command, which looks
like
>the following:
>----
>for (( statement1; statement2; statement3))
>do
> statement block
>done
>----
>The above 'for' syntax works like the 'for' statement in C.
Steve, Brian and Michael.
Thank you all for your responses. I had tried the wc -l
option
and couldn't get it to work. Figured it was because it was for files.
It
was just because I tried it in every way but the correct way.
Michael
You gave me just what I was looking for. A little knowledge
of
the for loop. Was hoping for a loop that would actually count the
lines
and not the words though. But your awk command helped me there. I
will
continue hunting for an answer to my "learning question" where I am
just
trying to find out how to count whole lines in a shell script
variable. with a loop internally to the script without the wc
command.
Thanks
Steve
--
redhat-list mailing list
unsubscribe mailto:redhat-list-request at redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/redhat-list
More information about the redhat-list
mailing list