The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
Google UNIX.COM


Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts here.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Need your Help on Unix Shell Scripting......... vinayraj UNIX for Advanced & Expert Users 5 02-08-2008 04:00 AM
Shell Scripting (Unix) tt1ect Shell Programming and Scripting 3 04-15-2007 06:15 AM
Unix shell scripting Maruthi Kunnuru Shell Programming and Scripting 4 05-22-2006 09:19 PM
difference between AIX shell scripting and Unix shell scripting. haroonec Shell Programming and Scripting 2 04-12-2006 05:12 AM
Unix shell scripting la_burton UNIX for Dummies Questions & Answers 6 10-22-2004 08:41 AM

Reply
 
Submit Tools LinkBack Thread Tools Search this Thread Display Modes
  #1  
Old 10-31-2007
Registered User
 

Join Date: Oct 2007
Posts: 3
Post Unix Shell Scripting

Hi All,

Greetings!!

I am trying to write a script that will get me the syslog.log [/var/adm/syslog/syslog.log] file output of last week...
That is ...my cron will run on Monday and will get me the syslog output of previous week , last monday-last sunday.

I tried using date formatting and tail..but did not succeed.

Can you guys help me out in how to write the script.It is a bit urgent,,,

Thanks in advance.
Reply With Quote
Forum Sponsor
  #2  
Old 10-31-2007
Cameron's Avatar
Registered User
 

Join Date: Nov 2001
Location: Brisbane, Australia
Posts: 490
What type of system are you using ??
Do you roll you syslog ??

On all the HP-UX systems I help manage, we roll the syslogs each morning ...
Code:
[/]# cat /usr/local/bin/movesyslogs.cron
#!/bin/ksh
#==========================================================================
# script:  movesyslogs.cron
#
# Notations:
# dd/mm/yy  Who  Comment...................................................
#
# 04/10/05  JIM  Initial script.
#                Rotates and archives Syslog. mails syslog for checking.
#
#==========================================================================

. $HOME/.profile

SCRIPTUSER=`whoami`


#------------------------------------------------------------------------
# SYSLOG Email.

echo "-----------------------------------------------------"
echo "- MAIL SYSLOG TO OPS_REPORTS - ($OPS_REPORTS)"
echo "-----------------------------------------------------"

#mailx -s "`hostname` syslog report" hp@adomain.com < /var/adm/syslog/syslog.log
cat  /var/adm/syslog/syslog.log | \
      grep -v -e "not reverse" -e "Received disconnect" -e "Connection closed" \
              -e "registrar/tcp: Connection from" | \
      mailx -s "`hostname` syslog report" $OPS_REPORTS
$SCRIPTDIR/movelogs.sh /var/adm/syslog/\*  $SYSLOGARCHIVE
You may have a similar $SYSLOGARCHIVE set up on your system.

Hope this helps some.

Cheers,
Cam
Reply With Quote
  #3  
Old 11-01-2007
Registered User
 

Join Date: Oct 2007
Posts: 3
Hi Cam,,

Thanks a ton...

I am using hp-ux 11.11.... [hp 9000 class servers]
Is the script that you have given something similar to the logrotate.conf script on linux?
What does this exactly do? will i get a week's log file from this?
kindly explain this script please.

thanks.

regards..
Reply With Quote
  #4  
Old 11-01-2007
Cameron's Avatar
Registered User
 

Join Date: Nov 2001
Location: Brisbane, Australia
Posts: 490
Code:
cat  /var/adm/syslog/syslog.log | \
      grep -v -e "not reverse" -e "Received disconnect" -e "Connection closed" \
              -e "registrar/tcp: Connection from" | \
      mailx -s "`hostname` syslog report" $OPS_REPORTS
I'll let you work this out for your own benefit.

The code for $SCRIPTDIR/movelogs.sh ...
Code:
/#!/bin/ksh
InTempl=$1
OutTempl=$2
mmmyy=`date +"%b%y"`

find $OutTempl/$mmmyy -type d >> /dev/null 2>&1
if [ $? -ne 0 ]
then
  mkdir $OutTempl/$mmmyy
  chmod 755 $OutTempl/$mmmyy
fi

for File in $(find $InTempl -xdev -prune -depth -type f )
do
    nn=`echo $File | sed "s/\// /g" | wc -w  `
    let nn=nn+1
    OutFile=`echo $File | cut -f $nn -d \/`
    echo From $File to $OutTempl/$mmmyy/$OutFile
    echo ======================================================================\
         >> $OutTempl/$mmmyy/$OutFile
    echo $File `ls -l $File | cut -c 46-57` >> $OutTempl/$mmmyy/$OutFile
    echo ======================================================================\
         >> $OutTempl/$mmmyy/$OutFile
    cat $File >> $OutTempl/$mmmyy/$OutFile
    cat > $File < /dev/null
done
Try to understand what it's doing yourself first, much more fun and you happen to retain what you learn in the process far more easily. If you still have trouble let the forum know.

As for getting a weeks worth, well we keep 13 months worth on disk. It doesn't take that much space.

Hope this is all helpful to you.

Cheers,
Cam

Last edited by Cameron; 11-02-2007 at 06:16 AM. Reason: typo
Reply With Quote
  #5  
Old 11-05-2007
Registered User
 

Join Date: Oct 2007
Posts: 3
Hi Cam,
Thanks for the support.
I worked out the first code and i got the entire syslog output emailed to the mail id that i provided..but it proved too costly as the file size is >100Gb,,

Second code gives me errors..with find command in line 13..
Usage: find path-list [predicate-list]

Would be grateful if u'll help me sort this.

thanks..

regards
Reply With Quote
Google The UNIX and Linux Forums
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes




All times are GMT -7. The time now is 09:17 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008. All Rights Reserved.Ad Management by RedTyger Visit The Complex Event Processing Blog

Content Relevant URLs by vBSEO 3.2.0