#!/usr/bin/perl ############################################################################# # $Id$ ############################################################################# # Log: CloudFlare updater script (cfddns) # Revision 1.0 2018/09/26 # Written by Asif Bacchus ############################################################################# use strict; ### Get Logwatch detail level my $detailLevel = $ENV{'LOGWATCH_DETAIL_LEVEL'} || 0; ### Declare variables my $summaryErr; my $summaryStatusUpToDate; my $summaryStatusNeedsUpdating; my $summarySuccess; my %reportHash = (); my $key; ### Minimal detail level: provide summary data only if ($detailLevel == 0) { ### Process logfile and summarize message types while (defined(my $ThisLine = )) { if ($ThisLine =~ /\-- \[ERROR\] /) { $summaryErr++; } elsif ($ThisLine =~ /up-to-date./) { $summaryStatusUpToDate++; } elsif ($ThisLine =~ /needs updating.../) { $summaryStatusNeedsUpdating++; } elsif ($ThisLine =~ /\-- \[SUCCESS\] /) { $summarySuccess++; } } ### Fill hashtable with headings and summary counts if ($summaryStatusNeedsUpdating > 0) { $reportHash{"Entries needing updates"} = $summaryStatusNeedsUpdating; } if ($summarySuccess > 0) { $reportHash{"Entries successfully updated"} = $summarySuccess; } if ($summaryStatusUpToDate > 0) { $reportHash{"Entries already up-to-date"} = $summaryStatusUpToDate; } if ($summaryErr > 0) { $reportHash{"Errors encountered"} = $summaryErr; } ### Print hash table foreach $key (sort keys %reportHash) { print "$key: $reportHash{$key}\n"; } } ### Exit gracefully exit (0); # vi: shiftwidth=3 tabstop=3 et # Local Variables: # mode: perl # perl-indent-level: 3 # indent-tabs-mode: nil # End: