diff --git a/Changes b/Changes index 5c349c02..d4ae8f61 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,9 @@ +2.047003 - 2021-02-10 + + [BUG FIXES] + + * #740 more robust log rotation + 2.047002 - 2020-12-30 [NEW FEATURES] diff --git a/bin/netdisco-backend b/bin/netdisco-backend index 3d10ce59..c9ceb78e 100755 --- a/bin/netdisco-backend +++ b/bin/netdisco-backend @@ -167,9 +167,9 @@ sub rotate_logs { return unless (-f $log_file) and ((-s $log_file) > ($logsize * 1024768)); - my @files = glob file($log_dir, '*'); - foreach my $f (reverse sort @files) { - next unless $f =~ m/$log_file\.(\d)$/; + my @files = grep { /$log_file\.\d+/ } glob file($log_dir, '*'); + foreach my $f (sort { $b <=> $a } @files) { + next unless $f =~ m/$log_file\.(\d+)$/; my $pos = $1; unlink $f if $pos == ($logfiles - 1); my $next = $pos + 1; diff --git a/bin/netdisco-web b/bin/netdisco-web index 29164287..25678d3c 100755 --- a/bin/netdisco-web +++ b/bin/netdisco-web @@ -182,9 +182,9 @@ sub rotate_logs { return unless (-f $log_file) and ((-s $log_file) > ($logsize * 1024768)); - my @files = glob file($log_dir, '*'); - foreach my $f (reverse sort @files) { - next unless $f =~ m/$log_file\.(\d)$/; + my @files = grep { /$log_file\.\d+/ } glob file($log_dir, '*'); + foreach my $f (sort { $b <=> $a } @files) { + next unless $f =~ m/$log_file\.(\d+)$/; my $pos = $1; unlink $f if $pos == ($logfiles - 1); my $next = $pos + 1;