script needed

Michael Velez mikev777 at hotmail.com
Fri Aug 5 13:02:46 UTC 2005


 

> -----Original Message-----
> From: redhat-list-bounces at redhat.com 
> [mailto:redhat-list-bounces at redhat.com] On Behalf Of Shaw, Marco
> Sent: Friday, August 05, 2005 8:32 AM
> To: General Red Hat Linux discussion list
> Subject: RE: script needed
> 
> > #!/bin/bash
> >  
> > IPADDRLIST=`tail -50 /var/log/messages | grep "<line
> > pattern>" | awk '{print
> > $<ip addr field number>}' | sort | uniq`
> >  
> > for IPADDR in $IPADDRLIST
> > do
> > 	IPADDRCNT=`tail -50 /var/log/messages | grep "<line
> > pattern>" | grep
> > -c $IPADDR`
> >  
> > 	if [[ $IPADDRCNT -ge 10 ]]
> > 	then
> > 		EXISTS=`grep -c $IPADDR /etc/hosts.deny`
> > 
> > 		if [[ $EXISTS -eq 0 ]]
> > 		then
> > 			echo $IPADDR >> /etc/hosts.deny
> > 		fi
> > 	fi
> > done
> 
> It's a slow Friday at work... ;-)
> 
> Sorry, I think I found another little problem.
> 
> Here: EXISTS=`grep -c $IPADDR /etc/hosts.deny`
> 
> You might grep for 10.10.10.10 in /etc/hosts.deny, which 
> would also match possibly an existing 10.10.10.100 entry by error.
> 
> I think you may have to go with changing this line to something like:
> 
> EXISTS=`grep -c "^${IPADDR}$" /etc/hosts.deny`
> 
> I realize your script is just supposed to be somewhat of a guide.
> 
> Sorry again, for the critiques (spelling?).
> 
> Marco

Yes, my script is only supposed to point in the right direction.  I only
took a quick stab at it. 

That said, you are correct.  Your solution would work.  That doesn't mean
the script still won't need changing.

I appreciate the critique as I wouldn't want anybody to think the script I
wrote was the final answer.  Just goes to the point as to how much or little
one should offer in an answer.  My fault, my oversight.

It would be up to anybody who is putting something into operation to verify
the solution deals correctly with all eventualities, especially if the
solution comes from a relatively unknown entity.   

That said, since I usually respond to scripting questions, from now on, I'll
put a disclaimer mentioning the lack of rigor that goes into writing
something that is meant to help people think about the structure of the
script, as opposed to the details.

I am glad you critiqued the script, though, as you were correct in pointing
out the oversight and as it prompted me to write the above.  I guess that's
what the entire mailing list is for.

Thanks,
Michael




More information about the redhat-list mailing list