Script Advice please?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Script Advice please?
# 8  
Old 06-18-2007
Edit: Quick question:
What is this part doing?
Code:
mFirstPart='^... .. '

It is a regular expression as follows:
1) Begining of the line.
2) Three characters.
3) One space.
4) Two characters.
5) One space.
This is done to make sure the "egrep" is using the first date and not the second one:
Code:
Jun 18 14:17:56 routername 36806: Jun 18 17:53:01.088:
Jun 18 13:17:56 routername 36806: Jun 18 15:53:01.088:
Jun 18 12:17:56 routername 36806: Jun 18 17:53:01.088:
Jun 11 17:47:56 routername 36806: Jun 18 01:53:01.088:
Jun 11 17:47:56 routername 36806: Jun 18 13:53:01.088:
Jun 07 14:17:56 routername 36806: Jun 18 00:53:01.088:

As for the code, it can be improved to make sure it is using two digits for the hour:
Code:
typeset -i mCurrHH
typeset -Z2 mCurrGrep
typeset -i mPrevHH
typeset -Z2 mPrevGrep
mCurrHH=`date +"%H"`
mPrevHH=${mCurrHH}-1
if [ ${mPrevHH} -eq -1 ]; then
  mPrevHH=23
fi
mCurrGrep=${mCurrHH}
mPrevGrep=${mPrevHH}
mFirstPart='^... .. '
egrep "${mFirstPart}${mPrevGrep}|${mFirstPart}${mCurrGrep}"

# 9  
Old 06-18-2007
Quote:
Originally Posted by earnstaf
Seems to be working. So I guess I should cron this to run at 59th minute 30 second of every hour?
My awk solution search for the current hour.
For the previous hour :
Code:
awk -v hour=$(date +%H) '
   BEGIN { 
      hour = (hour==0; 23; hour-1)
   }
   int($3) == hour && /denied/ && /gress/ {
      print $4:
   }
' file | sort -u

# 10  
Old 06-18-2007
Quote:
Originally Posted by aigles
My awk solution search for the current hour.
For the previous hour :
Code:
awk -v hour=$(date +%H) '
   BEGIN { 
      hour = (hour==0; 23; hour-1)
   }
   int($3) == hour && /denied/ && /gress/ {
      print $4:
   }
' file | sort -u

Looks good aigles... AWK is something that I really need to dig down into and learn. Thanks for your input.
# 11  
Old 06-18-2007
Quote:
Originally Posted by Shell_Life
Edit: Quick question:
What is this part doing?
Code:
mFirstPart='^... .. '

It is a regular expression as follows:
1) Begining of the line.
2) Three characters.
3) One space.
4) Two characters.
5) One space.
This is done to make sure the "egrep" is using the first date and not the second one:
Code:
Jun 18 14:17:56 routername 36806: Jun 18 17:53:01.088:
Jun 18 13:17:56 routername 36806: Jun 18 15:53:01.088:
Jun 18 12:17:56 routername 36806: Jun 18 17:53:01.088:
Jun 11 17:47:56 routername 36806: Jun 18 01:53:01.088:
Jun 11 17:47:56 routername 36806: Jun 18 13:53:01.088:
Jun 07 14:17:56 routername 36806: Jun 18 00:53:01.088:

As for the code, it can be improved to make sure it is using two digits for the hour:
Code:
typeset -i mCurrHH
typeset -Z2 mCurrGrep
typeset -i mPrevHH
typeset -Z2 mPrevGrep
mCurrHH=`date +"%H"`
mPrevHH=${mCurrHH}-1
if [ ${mPrevHH} -eq -1 ]; then
  mPrevHH=23
fi
mCurrGrep=${mCurrHH}
mPrevGrep=${mPrevHH}
mFirstPart='^... .. '
egrep "${mFirstPart}${mPrevGrep}|${mFirstPart}${mCurrGrep}"

Shell Life,
I can see why the typeset -Z2 is needed (so it doesnt find 20 when it should find 2), but the script isnt liking it:

./time.sh: line 4: typeset: -Z: invalid option
typeset: usage: typeset [-afFirtx] [-p] name[=value] ...

I tried it a few different ways:
Code:
typeset -Z2 mCurrGrep
typeset -Z 2 mCurrGrep
typeset -Z mCurrGrep 2
typeset -Z mCurrGrep=2

...same error on each. is -Z not an option in bash?
# 12  
Old 06-18-2007
Quote:
Originally Posted by earnstaf

...same error on each. is -Z not an option in bash?
make your script a 'ksh' - '#!/bin/ksh' (on the first line of the script).
# 13  
Old 06-18-2007
Quote:
Originally Posted by vgersh99
make your script a 'ksh' - '#!/bin/ksh' (on the first line of the script).
That did it .. thanks. I had read that bash offered most everything that the other shells and then some in terms of scripting... I guess that isn't the case here, eh?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Advice on a backup script, maybe one is out there already?

Hi, Not sure whether this is the right place to post it. I decided to post it here 'coz Advanced and Expert users will most likely have the answer to what I am looking for. I want to backup scripts that I have access to to a tar file file and zip it. At the moment I am creating a directory... (4 Replies)
Discussion started by: newbie_01
4 Replies

2. Shell Programming and Scripting

Script advice

All I have 2 parent directories - input and output. Each parent has multiple sub-directories...each sub-directory has multiple files. Each parent directory structure is a mirror image of itself I need to poll the imput directory and if a new file is found, encrypt the file, move the file to... (2 Replies)
Discussion started by: davidra
2 Replies

3. Shell Programming and Scripting

Need advice on approach for script

Greetings all. I have a repository server which receives, without exhaggeration, several million files a week. The majority of these files are in .csv format, which means they're highly compressable. They are spread throughout numerous directories where there are configured monitoring utilities... (4 Replies)
Discussion started by: msarro
4 Replies

4. Shell Programming and Scripting

Advice on script

Hi folks, I use following script:- #!/bin/sh # cd Linbread TODAY=`date +"%m%d"` DATA=`grep $TODAY linbread.dat` HOUR=`date +"%H"` if then TOD="Morning" elif then TOD="Afternoon" else TOD="Evening" fi echo $DATA | gawk -F"|" '{printf("%s\n\n%s",$2,$3)}' > $$tmp fold -s -w60... (0 Replies)
Discussion started by: satimis
0 Replies

5. Shell Programming and Scripting

Looking for optimization advice on a short script

I already have a solution to my problem, but I'm looking to see if it can be made more succinct and faster. The problem: given a list, as shown below, extract the pathname for any file in a directory named 'ample' and return it's index into the list. The index is also in the data itself. Note that... (1 Reply)
Discussion started by: prigo
1 Replies

6. Shell Programming and Scripting

advice on shell script

Hello, I have this script running on cron every 20 minutes. By 12pm daily, our system is expecting all input files to be uploaded by the script. After this cutoff time, the script would still be running though, but i need some kind of alerts/logs to know which input files weren't received for... (1 Reply)
Discussion started by: gholdbhurg
1 Replies

7. Shell Programming and Scripting

Script Help/Advice

Alright, I feel like I have a pretty good basic knowledge of shell scripting, but this one is throwing me for a loop. I know I've seen something similar done with awk, but I couldn't find it with the search function. I've grepped through my log file and get results like this: --... (14 Replies)
Discussion started by: earnstaf
14 Replies

8. Shell Programming and Scripting

Advice on Script

I would like some advice on how to logically put together a script to handle a daily task of data gathering for the following problem. I have two files, file1 has 125,000 records that I cut and remove unwanted fields through scripts and cron. In file2, I have 25000 records that has the same... (4 Replies)
Discussion started by: greengrass
4 Replies

9. Shell Programming and Scripting

first script. need help and advice.

Hello everyone, This is my first post here and this is the first time I am using UNIX OS (Slackware). I find it really useful and powerful and would like to master it but as you may guess I am expreicing quite a few problems. I've been reading a few documentations about it and bash this week... (17 Replies)
Discussion started by: sanchopansa
17 Replies

10. Shell Programming and Scripting

c-shell script advice please.

Hi, I have the following script running in my cron. -------------------------------------------------------------------- #!/bin/csh bnstat -p GPD_VSLinux | grep pg | grep varcon | awk '{print $1, $2, $3, $4, $5, $6, $7, $8, $9, $10}' > /tmp/LX_xbatch.log bnstat -p GPD_VSLinux_test | grep pg... (2 Replies)
Discussion started by: killerserv
2 Replies
Login or Register to Ask a Question