Sponsored Content
Full Discussion: Log rotation script
Top Forums Shell Programming and Scripting Log rotation script Post 302274797 by theninja on Thursday 8th of January 2009 11:32:47 AM
Old 01-08-2009
Log rotation script

I have the below script to help with disk space cleanup that finds logs older than a specified number of days (say 10 days). I need it to grab "active" logs as well. Problem is an "active log" will not get archived unless I put in 0 days which I don't want to do, I need to leave the past 10 days, but I need to archive active logs that tend to get large. Like apache logs that do not rotate until a restart of the app. Any ideas? Thanks.

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

 

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
Log(4)							     Kernel Interfaces Manual							    Log(4)

NAME
Log, .Log - Contains the uucp program log files SYNOPSIS
/usr/spool/uucp/.Log DESCRIPTION
The /usr/spool/uucp/.Log directories contain uucp program log files. The uucp program normally places status information about each trans- action in the appropriate log file each time you use the networking utilities facility. All transactions of the uucico and uuxqt daemons are logged in files named for the remote system concerned. The files are stored in a subdirectory of the /usr/spool/uucp/.Log directory named for the daemon involved. Thus, the log files are named with a form of the following: /usr/spool/uucp/.Log/DaemonName/SystemName The uucp and uuto commands call the uucico daemon. The uucico daemon activities for a particular remote system are logged in the System- Name file in the /usr/spool/uucp/.Log/uucico directory on the local system. The uux and uusend commands call the uuxqt daemon. The uuxqt daemon activities for a particular remote system are logged in the SystemName file in the /usr/spool/uucp/.Log/uuxqt directory on the local system. When more than one uucp process is running, however, the system cannot access the standard log file, so it places the status information in a file with a .Log prefix that covers just the single transaction. The uucp program can automatically append the temporary log files to a primary log file. This is called compacting the log files, and is handled by the uudemon.cleanu command, a shell procedure, which combines the log files of the activities of the uucico and uuxqt daemons on a system and stores them in the /usr/spool/uucp/.Old directory. The default is for the uudemon.cleanu command to save log files that are 2 days old. This default can be changed by modifying the appro- priate line in the shell script. If storage space is a problem on a particular system, reduce the number of days that the files are kept in the individual log files. The uulog command can be used to view the uucp program log files. RELATED INFORMATION
Daemons: cron, uucico(8), uusched(8) Commands: uucp(1), uudemon.cleanu(4), uulog(1), uusend(1), uuto(1), uux(1) delim off Log(4)
All times are GMT -4. The time now is 01:51 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy