need help writing a script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting need help writing a script
# 1  
Old 04-09-2003
need help writing a script

Hello everyone. Well, I will get right to the point. I am new to Perl and trying to learn it as much as I can. I have been assigned the task of writing a perl script to extract information from firewall logs.

Like I said, I am new to Perl and I am having a tough time because I think what I am trying to do is very advanced.

Here is what I want to do:I am trying to extract information from a firewall log and put it into a new file. I only want to extract certain pieces of information. Here are a few examples:

Let me show what I am trying to pull out of the file:

03/13/03 16:44:56 kernel Temporarily blocking host 212.241.116.21

(This is where the inital block occurs, the firewall will then continue to block all attempts from this IP address.I would like to extract all entries in the firewall like this one.)

03/13/03 16:44:57 firewalld103 deny in eth0 48 tcp 20 117 212.241.11.21 209.126.xxx.xxx 4449 80 syn (LO-Proxied-HTTP)

(At this point, the firewall continues to block the attempt. I would like to extract all lines in the firewall that contain this as well...contains very useful information such as ports and packet sizes.)

With that in mind, can I ask for someone to help me build my script? I feel like I am butting my head against a wall. I know I have much to learn, but can learn a lot from seeing the script and breaking it down to see how it functions.

I really need help. If someone can help me write this script, I would be extremely grateful. I should mention, this is not a homework assignment. Smilie

Also, once I see the script and how it is written, I believe it will help me understand much more.

Thanks.

Tarballed
# 2  
Old 04-10-2003
Here's a rough and ready version; as always, check that the location of your perl program is correct after the "#!" :
Code:
#!/usr/bin/perl -w

while ( <> ) {
    if ( m/blocking/i | m/deny/i ) {
        print;
    }
}

How do you execute it I hear you cry? Save it as a file called firewall_extract.pl, make it executable, and it should be as follows:

./firewall_extract.pl <path_to_firewall_log >file_for_output

Smilie

Edit: Learning Perl by Oreilly is a fantastic way to start learning Perl!

Last edited by WIntellect; 04-10-2003 at 06:04 AM..
# 3  
Old 04-10-2003
sometimes shell scripting is easer and much more convient then something like perl.

you could also do this.
Code:
egrep deny\|blocking /var/adm/firewall.log

yes win does have it. but IMHO i would add the following lines to make it a bit more clear.

[code]
#!/usr/bin/perl
#
# OBJECTIVE:
# 1) Open the firewall log and find all occuances of "blocking" or "deny"
#

$FILE='<path to your firewall log>';

open (FIREWALL_LOG, "$FILE") or die "Can not read file ($!)";

while (<FIREWALL_LOG>) {
chomp; # remove end of line
if ($_ =~ /(blocking|deny)/ ) {
print $_
}
}
# 4  
Old 04-17-2003
WIntellect's version is correct but verbose. In perl:
Code:
perl -lane '/\b(blocking|deny)\b/i && print' logfilename

This beats Optimus_P's solution by only choosing the lines that have the terms you're looking for as whole words (a failing of egrep). If your logfile is huge (multimegabytes) you can gain a slight performance advantage with this:
Code:
perl -lane '/\b(?:blocking|deny)\b/i && print' logfilename

Re: Learning Perl: This is a really good book, but if you're an experienced programmer, the man pages are sufficient. Read 'man perl' thouroughly, and you'll learn the best order in which to go through them.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. How to Post in the The UNIX and Linux Forums

Help with script writing?

I am new for script writing. I have a file named as name.dat and contain numbers with different rows and columns. I want to sum numbers at one row with that of at another row; like row1 + row101 + row 201, with corresponding columns. Any one can help me to write a script for this operation. ... (1 Reply)
Discussion started by: kumnegert
1 Replies

2. Shell Programming and Scripting

I need help writing this script

:wall: Can't seem to figure out how to fix this please help its not starting over like I would like it to When I enter in "Date" or "Time" nothing comes Also if you can tell me the commands for the other 3 stuff that would be much appreciated #!/bin/bash clear while ; do echo... (8 Replies)
Discussion started by: nowruzr
8 Replies

3. Shell Programming and Scripting

Help in writing script

i need some help in donig some actions on files in a library. i want to get the n last files, and print to the screen their name, date, and how many times a specific string appears in each file.. how can i do this..?... (6 Replies)
Discussion started by: eee
6 Replies

4. Red Hat

writing a script

Dear Madam/Sir Who can help me with writing a script doing the following? 1- Read names of files (only files with special name format let say initially they have the same file name start like TT*) 2- Then create an empty files with the same names have been read in step one but with extension... (1 Reply)
Discussion started by: m.nageeb
1 Replies

5. Shell Programming and Scripting

Please help me in writing my script

hello all, I have a script, used to search for the strings from the set of 5 similar pattern file from the log dir. So here it goes . The input parameter is a part of the file name. When during the script execution, the script should parse the input parameter to original file's with the same... (0 Replies)
Discussion started by: baraghun
0 Replies

6. Shell Programming and Scripting

Help me in writing the script

Hi, I have written a script which converts a give hexdecimal value to binary value in perl. But now, the problem is I should read every bit of it ( if its 10101010, i should read the value in each position and if the value in that position is 1 i should print a string and should exit if its... (1 Reply)
Discussion started by: prakashreddy
1 Replies

7. UNIX for Dummies Questions & Answers

Need help writing this script

Here is the script I am trying to write along with my answer I wrote. Please help me understand why it doesn't work. Create an executable script file called "newname" that will perform the followings: 1. Rename a file upon the user's request. If the file exists, prompt the user for... (1 Reply)
Discussion started by: wiggles
1 Replies

8. Shell Programming and Scripting

help writing script

hi all i am having a file(a fixed length file) of 28 bytes.The file has account number from 5th place to next 16 digits. the file looks like below, 58331600563588885696ACXT5263 58331600563588885697ACXT5263 58331600563588885698ACXT5263 i want to write a script which will extract the... (8 Replies)
Discussion started by: dr46014
8 Replies

9. UNIX for Dummies Questions & Answers

help for writing a script

Hi, I need help writing a unix script to change the time in the server automatically when it reaches a specified time. Only on the 14th of april, when the time becomes midnight (00:00:00), I need the server to change the time automatically to 23:30:00 and start working on as usual with a... (2 Replies)
Discussion started by: amodha
2 Replies

10. Shell Programming and Scripting

Writing Script?

Anyone have an example of a simple shell script that solicits a (Y)es or (N)o response from the user. If the response is 'Y' display a message on the screen that thanks the user for the positive response. If the response is 'N' display a message that thanks the user for the negative response. If... (15 Replies)
Discussion started by: wmosley2
15 Replies
Login or Register to Ask a Question