shell script to count httpd processes
Steve Buehler
steve at ibapp.com
Mon Mar 14 20:35:03 UTC 2005
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
More information about the redhat-list
mailing list