RE: script needed

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

 



> -----Original Message-----
> From: redhat-list-bounces@xxxxxxxxxx 
> [mailto:redhat-list-bounces@xxxxxxxxxx] On Behalf Of kmail
> Sent: Tuesday, August 16, 2005 4:18 AM
> To: General Red Hat Linux discussion list
> Subject: Re: script needed
> 
> thanks to all, I tried  it but I got (1.2.3.4[1.2.3.4]) as 
> result, how can I parse the ip inorder to add it to hosts.deny?
> 
> also, how to ignore monitoring ip if I have them listed in a 
> test file.
> 
> thank you
> 

To further parse that line and get the IP address between the '(' and '[',
you can add these awk components into the pipe:

awk -F"(" '{print $2}' | awk -F[ '{print $1}' 

The -F option tells awk which character delimits a field.

However, as I mentioned in my first e-mail, I do not know the exact format
of the line you are searching for.  If the line will always produce the same
format as you mentioned in your e-mail (with the IP address in the same
location), then the above should work.  However, it is up to you to verify
this would work 100% of the time.

As the parsing you're asking for is relatively simple, I offered the line
above; however, a 100% correct solution can only be guaranteed through a
careful review/research (by the end user) of all details.

As for your second question, I may have misunderstood your question but it
seems the answer is already in the script.  The code will check if the IP
address exists on one line in the file /etc/hosts.deny.  If it does not
exist then append the IP address to the hosts.deny file.  If you want to
check another test file, simply replace /etc/hosts.deny with the name of
your test file on the grep line.

As a final point, in order to ensure 11.2.3.4 will not be confused with
1.2.3.4 when you grep (as pointed out by Marco Shaw), replace this line:

IPADDRCNT=`tail -50 /var/log/messages | grep "<linepattern>" | grep -c
$IPADDR`

with this line:

IPADDRCNT=`tail -50 /var/log/messages | grep "<linepattern>" | grep -c
"($IPADDR\["`

This will delimit the IP address as per your format you gave in your e-mail,
with a "(" at the beginning and "[" at the end.

Again, I can't stress more that you need to verify this script will work
100% yourself.  I used to teach unix scripting so I don't mind helping out
if the solution is simple, but you need to be 100% comfortable that you know
what this script is doing and that it does what you want, before you put it
in operation.

If you have any more questions, I would suggest you do the research yourself
to familiarize yourself with the script.

Michael

-- 
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