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
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
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
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
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
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
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
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
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
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)
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
LEARN ABOUT DEBIAN
sysstat
SYSSTAT(5) Linux User's Manual SYSSTAT(5)
NAME
sysstat - sysstat configuration file.
DESCRIPTION
This file is read by sa1(8) and sa2(8) shell scripts from the sysstat's set of tools. It consists of a sequence of shell variable assign-
ments used to configure sysstat logging. The variables and their meanings are:
HISTORY
The number of days during which a daily data file or a report should be kept. Data files or reports older than this number of days
will be removed by the sa2(8) shell script.
COMPRESSAFTER
Number of days after which daily data files are to be compressed, either by gzip or bzip2.
SADC_OPTIONS
Options that should be passed to sadc(8). With these options (see sadc(8) manual page), you can select some additional data which
are going to be saved in daily data files. These options are used only when a new data file is created. They will be ignored with
an already existing one.
FILES
/etc/sysstat/sysstat
AUTHOR
Sebastien Godard (sysstat <at> orange.fr)
SEE ALSO
sadc(8), sa1(8), sa2(8)
http://pagesperso-orange.fr/sebastien.godard/
Linux SEPTEMBER 2010 SYSSTAT(5)