[interchange-cvs] interchange - racke modified
dist/etc/jobs/maintenance/logrotate
interchange-cvs at icdevgroup.org
interchange-cvs at icdevgroup.org
Thu Jul 5 11:30:44 EDT 2007
User: racke
Date: 2007-07-05 15:30:43 GMT
Added: dist/etc/jobs/maintenance logrotate
Log:
logrotate configuration file generator job added, intended to help fixing #5
Revision Changes Path
1.1 interchange/dist/etc/jobs/maintenance/logrotate
rev 1.1, prev_rev 1.0
Index: logrotate
===================================================================
[comment]Variables/Templates for log rotation[/comment]
[set rotate]7[/set]
[set asciitrack_rotate]200[/set]
[set route_rotate]200[/set]
[set size]100k[/set]
[set trackfile_size]10M[/set]
[set asciitrack_size]10M[/set]
[set compress]1[/set]
[set delaycompress]1[/set]
[set template]{FILENAME} {
missingok
rotate {ROTATE}{WEEKLY?}
weekly{/WEEKLY?}{MONTHLY?}
monthly{/MONTHLY?}
size={SIZE}{COMPRESS?}
compress{/COMPRESS?}{DELAYCOMPRESS?}
delaycompress{/DELAYCOMPRESS?}
}
[/set]
[set file]etc/logrotate[/set]
[perl]
my %frags;
my $generate_logrotate = sub {
my ($token, $location) = @_;
my ($entry, %hash);
$token = lc($token);
if ($location =~ m%^/%) {
$hash{filename} = $location;
} else {
$hash{filename} = "$Config->{VendRoot}/$location";
}
for (qw(rotate weekly monthly size compress delaycompress)) {
if (exists $Scratch->{"${token}_$_"}) {
$hash{$_} = $Scratch->{"${token}_$_"};
} elsif ($token =~ /^(.*?)_/
&& exists $Scratch->{"${1}_$_"}) {
$hash{$_} = $Scratch->{"${1}_$_"};
} else {
$hash{$_} = $Scratch->{$_};
}
}
$entry = $Tag->uc_attr_list({hash => \%hash, body => $Scratch->{template}});
return $entry;
};
my $out;
# default log file for [log]
$frags{ErrorFile} = $generate_logrotate->('ErrorFile', $Config->{ErrorFile});
# error log file
$frags{LogFile} = $generate_logrotate->('LogFile', $Config->{LogFile});
# user tracking
if ($Config->{TrackFile}) {
$frags{TrackFile} = $generate_logrotate->('TrackFile', $Config->{TrackFile});
}
# file for formatted orders
if ($Config->{AsciiTrack}) {
$frags{AsciiTrack} = $generate_logrotate->('AsciiTrack', $Config->{AsciiTrack});
}
# pick up log files from the routes
my $routelog;
for (keys %{$Config->{Route_repository}}) {
if ($routelog = $Config->{Route_repository}->{$_}->{track}) {
$frags{"Route_$_"} = $generate_logrotate->("Route_$_", $routelog);
}
}
for (keys %frags) {
$out .= $frags{$_};
}
# finally write file
if ($Scratch->{file}) {
$Tag->write_relative_file({file => $Scratch->{file},
umask => 002,
body => $out});
$out = '';
}
return $out;
[/perl]
More information about the interchange-cvs
mailing list