[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