Hi
I am trying to simulate the behaviour when a file gets copy-truncated or any other option selected in logrotate.
As a start, I have written a quick script to create values in a file at high rate.
#!/usr/bin/perl open FILE, ">testdata" or die $!; for (my $i = 1; $i <= 10000000; $i++){ print FILE "$i\n"; # sleep 1; } close FILE
and a logrotate.conf file that rotates the file /home/blah/testfileopen/testdata { copytruncate daily rotate 2 size=10M }
It works but the copy truncate messes up the file the application is writing to... or it might be my simplistic perl script. I can't to a head on the testdata file. A hexdump reveals some strange errors which I believe is the cause of the problems, why I dont know.
0000000 0000 0000 0000 0000 0000 0000 0000 0000 * 1028000 3232 3635 3235 0a31 3232 3635 3235 0a32 1028010 3232 3635 3235 0a33 3232 3635 3235 0a34
The truncated file is fine and is perfectly readable.
So I have two questions really: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Given a well written program what is the potential data loss if any when doing a copy truncate logrotate. and * why does the file get such strange entries when truncated and is there an easy fix for it?
Regards
______________________________________________________________________ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email ______________________________________________________________________