OT: Testing copytruncate

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



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 
______________________________________________________________________
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
http://lists.centos.org/mailman/listinfo/centos


[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]
  Powered by Linux