RE: shell script to count httpd processes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx?subject=unsubscribe https://www.redhat.com/mailman/listinfo/redhat-list

[Index of Archives]     [CentOS]     [Kernel Development]     [PAM]     [Fedora Users]     [Red Hat Development]     [Big List of Linux Books]     [Linux Admin]     [Gimp]     [Asterisk PBX]     [Yosemite News]     [Red Hat Crash Utility]


  Powered by Linux