shell script to count httpd processes
Michael Velez
mikev777 at hotmail.com
Mon Mar 14 19:43:58 UTC 2005
> -----Original Message-----
> From: redhat-list-bounces at redhat.com
> [mailto:redhat-list-bounces at redhat.com] On Behalf Of Steve Buehler
> Sent: Monday, March 14, 2005 2:02 PM
> To: redhat-list at redhat.com
> Subject: shell script to count httpd processes
>
> I am running RHL 7.3.
> 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.
>
> Thanks
> Steve
>
> --
> redhat-list mailing list
> unsubscribe mailto:redhat-list-request at redhat.com?subject=unsubscribe
> https://www.redhat.com/mailman/listinfo/redhat-list
>
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.
Michael
More information about the redhat-list
mailing list