Sponsored Content
Full Discussion: Log rotation script
Top Forums Shell Programming and Scripting Log rotation script Post 302274817 by theninja on Thursday 8th of January 2009 12:30:24 PM
Old 01-08-2009
After some playing around I came up with this. I know this isn't the best solution, but it works.
HTML Code:
#!/usr/bin/ksh

export PATH=$PATH:/usr/contrib/bin
export LogDir=$1
export Days=$2
date=$(date '+%Y.%m.%d-%H:%M:%S')

# Log Directory
#LogDir=/home/p029052/tools/logs
ARCHIVE_DIR=/home/p029052/tools/logs/archive

#inuse=find $LogDir/*log* -mtime +2 -exec /usr/sbin/fuser -u {} \; #loglist='find *log* -mtime +2;'

if (( $# < 2 ))
then
        echo "Usage  log.rotate.sh DIRECTORYPATH DAYS  (ie log.rotate.sh /opt/esisupt/logs/hds/ar/logs 10)"
        exit 1
fi

for i in `find ${LogDir}/*.log* ${LogDir}/*.out* -mtime +${Days}`;do
        num=`/usr/sbin/fuser -u ${i} 2>/dev/null | awk '{print $1}' | wc -l`
        if [ ${num} -gt 0 ]
        then
                echo "-----COPYING, GZIP'ing and MOVING open file ${i} to ${i}.${date}-----"
                cp ${i} ${i}.${date} | gzip ${i}.${date} | mv $i.${date}.gz ${ARCHIVE_DIR}
                echo "-----zero out ${i}-----"
                >${i}
        else
        echo "gzip'ing and moving ${i} to ${ARCHIVE_DIR}"
        mv ${i} ${i}.${date}
        gzip ${i}.${date}
        mv ${i}.${date}*.gz ${ARCHIVE_DIR}
fi
done

for i in `find ${LogDir}/*.log* ${LogDir}/*.out* `;do
        num=`/usr/sbin/fuser -u ${i} 2>/dev/null | awk '{print $1}' | wc -l`
        if [ ${num} -gt 0 ]
        then
                echo "-----COPYING, GZIP'ing and MOVING open file ${i} to ${i}.${date}-----"
                cp ${i} ${i}.${date} | gzip ${i}.${date} | mv $i.${date}.gz ${ARCHIVE_DIR}
                echo "-----zero out ${i}-----"
                >${i}
fi
done
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Log Rotation Tool/Script

Hello all Does anyone has an intersting script or a good freeware tool for log rotation that is good for Unix and Linux as well ? My thanks in advance (4 Replies)
Discussion started by: yelalouf
4 Replies

2. HP-UX

Log rotation on HP-UX

Can anyone post a sample log rotate and archive configuration on HP-UX? I really don't know how to do that... :( (3 Replies)
Discussion started by: untamed
3 Replies

3. Shell Programming and Scripting

log rotation

Hello all. Due to some reason I can not use HUP to rotate needed log files. So I use the standard method: cp $file $file.1 cat /dev/null > $file But if Java application in this time writing the output to $file, in the beginning of it appears many "^@^@^@^@^@^@". How to avoid it? Or how... (6 Replies)
Discussion started by: mirusnet
6 Replies

4. Shell Programming and Scripting

Log rotation issue with script

I have application which to the heavy stdout and I have diverted the stdout to log file. this log file is writing very heavily and we have a script which rotates the logs. logic for rotation is smthing like cp logfile logfile.1 cat /dev/null > logfile this logic was working fine till we... (3 Replies)
Discussion started by: navinmistry
3 Replies

5. Solaris

Solaris log rotation

HI, What is log rotation in Solaris ? What are the essential steps to perform log rotation in Solaris? (1 Reply)
Discussion started by: Revathi@1
1 Replies

6. Solaris

Log rotation, twice

hi folk, need advise regarding the log rotation, i have the logadm set at 30 2 * * * /usr/sbin/logadm so it supposed to rotate once per day, but now it rotated twice! but someone my log will rotate at 2:30 AM, but then another 2 hours later, it creates a new and rotate a new log again,... (2 Replies)
Discussion started by: dehetoxic
2 Replies

7. UNIX for Dummies Questions & Answers

Log Rotation

Hi Guys, Good morning, I just want to know and collect ideas on this one. Regarding rotation of logs as I've observed it's not consistently functioning. I have a server with 8 Partitions, each partition has a dedicated directory for the logs that is needed and I set it every 5mins (300secs) the... (1 Reply)
Discussion started by: rymnd_12345
1 Replies

8. Solaris

Log rotation

Hi All! I seem to have a problem with log rotation, unless I am doing something wrong, I have type the following command for testing purposes to see if the -s option works but he did not: logadm -w /var/adm/messages -C 8 -c -s 512k -t '/var/adm/messages.$n' -z 1 the file is now at this... (7 Replies)
Discussion started by: fretagi
7 Replies

9. Shell Programming and Scripting

Log rotation script

I have an application that rotate its log once it reaches 100mb and it keeps a total of 24 logs. I am trying to write a script to run daily to tar up the previous day logs files and move them to a different directory. here is a long listing of the logs in the directory: -rw-r--r-- 1 user1 ... (6 Replies)
Discussion started by: e_mikey_2000
6 Replies

10. OS X (Apple)

Mavericks log rotation

In Mavericks, Apple has apparently moved control of log rotation to ASL. There's a 'ttl' value to determine how long log files will stick around for. I can compress them, change the way they're named, limit them by size, etc. But the one thing I cannot find is how to NOT keep one log file per... (0 Replies)
Discussion started by: jnojr
0 Replies
make_combined_log.pl(1) 				      General Commands Manual					   make_combined_log.pl(1)

NAME
make_combined_log.pl - make combined logfile from SQL database SYNOPSIS
make_combined_log.pl <days> <virtual host> DESCRIPTION
This perl script extracts the httpd access data from a MySQL database and formats it properly for parsing by 3rd-party log analysis tools. The script is intended to be run out by cron. Its commandline arguments tell it how many days' worth of access records to extract, and which virtual_host you are interested in (because many people log several virthosts to one MySQL db.) This permits you to run it daily, weekly, every 9 days -- whatever you decide. NOTE
By "days" I mean "chunks of 24 hours prior to the moment this script is run." So if you run it at 4:34 p.m. on the 12th, it will go back through 4:34 p.m. on the 11th. KNOWN ISSUES
Because GET and POST are not discriminated in the MySQL log, we'll just assume that all requests are GETs. This should have negligible effect on any analysis software. This could be remedied IF you stored the full HTTP request in your database instead of just the URI, but that's going to cost you a LOT of space really quickly... Because this is somewhat of a quick hack it doesn't do the most robust error checking in the world. Run it by hand to confirm your usage before putting it in crontab. AUTHOR
Edward Rudd <eddie@omegaware.com> MAN PAGE CREATED BY
Michael A. Toth <lirul.lists@gmail.com> - based on comments of script COMMENTS
This man page was written using xml2man (1) by the same author. Manuals User make_combined_log.pl(1)
All times are GMT -4. The time now is 05:47 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy