#!/usr/bin/perl use strict; use warnings; use DateTime; my $folder = "./workingFolder/"; my $OutFolder = "./workingFolder/ReadyLogs/"; my $preFix = "server.log"; # LogDateiNamen holen und Liste sortieren my @logs= map {$_->[1]} sort {$a->[0] <=> $b->[0]} map {[/(\d+)$/?$1:0,$_]} glob($folder.$preFix.'*'); # Logs umbenennen # neue Namen merken my @to_join; my $count=0; for my $old (@logs) { my $new = sprintf($folder."%02d.log",$count++); rename($old,$new) or die qq(Error during Rename "$old" => "$new": $!); push(@to_join,$new); } # BackupLog erzeugen my $mydate = DateTime->now->set_time_zone('Europe/Berlin')->ymd; # Find the Timestamp my $outfile=$OutFolder.$mydate."-ServerMessages.log"; open(my $ofh, '>', $outfile) or die qq(Error during Open "$outfile": $!); for my $file (@to_join) { open(my $ifh, '<', $file) or die qq(Error during Open "$file": $!); # langsam aber Speicher schonend # kopiere Zeile für Zeile print $ofh $_ while( <$ifh> ); close($ifh); } close($ofh); # lösche die umbenannten Logs # ansonsten gibt es Probleme beim nächsten Backup unlink(@to_join);