refactor(LOGWATCH): match new script structure
- update keyword filters - update reporting detail levels - better targeting of useful information at summary detail level
This commit is contained in:
parent
2805f560d7
commit
d9224b5791
@ -4,7 +4,7 @@
|
|||||||
# $Id$
|
# $Id$
|
||||||
#############################################################################
|
#############################################################################
|
||||||
# Log: CloudFlare updater script (cfddns)
|
# Log: CloudFlare updater script (cfddns)
|
||||||
# Revision 1.0 2018/09/26
|
# Revision 2.0 2021/05/08
|
||||||
# Written by Asif Bacchus
|
# Written by Asif Bacchus
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
@ -17,9 +17,10 @@ my $detailLevel = $ENV{'LOGWATCH_DETAIL_LEVEL'} || 0;
|
|||||||
|
|
||||||
### Declare variables
|
### Declare variables
|
||||||
my $summaryErr;
|
my $summaryErr;
|
||||||
my $summaryStatusUpToDate;
|
my $summaryFailedUpdate;
|
||||||
my $summaryStatusNeedsUpdating;
|
my $summaryInvalidHost;
|
||||||
my $summarySuccess;
|
my $summaryUpdated;
|
||||||
|
my $summaryUpToDate;
|
||||||
|
|
||||||
my %reportHash = ();
|
my %reportHash = ();
|
||||||
my $key;
|
my $key;
|
||||||
@ -29,32 +30,38 @@ my $key;
|
|||||||
if ($detailLevel == 0) {
|
if ($detailLevel == 0) {
|
||||||
### process logfile and summarize message types
|
### process logfile and summarize message types
|
||||||
while (defined(my $ThisLine = <STDIN>)) {
|
while (defined(my $ThisLine = <STDIN>)) {
|
||||||
if ($ThisLine =~ /\-- \[ERROR\] /) {
|
if ($ThisLine =~ /ERROR: Unable to update IP address/) {
|
||||||
|
$summaryFailedUpdate++;
|
||||||
|
}
|
||||||
|
elsif ($ThisLine =~ /ERROR: /) {
|
||||||
$summaryErr++;
|
$summaryErr++;
|
||||||
}
|
}
|
||||||
elsif ($ThisLine =~ /up-to-date./) {
|
elsif ($ThisLine =~ /WARNING: Cannot find existing record/) {
|
||||||
$summaryStatusUpToDate++;
|
$summaryInvalidHost++;
|
||||||
}
|
}
|
||||||
elsif ($ThisLine =~ /needs updating.../) {
|
elsif ($ThisLine =~ /SUCCESS: /) {
|
||||||
$summaryStatusNeedsUpdating++;
|
$summaryUpdated++;
|
||||||
}
|
}
|
||||||
elsif ($ThisLine =~ /\-- \[SUCCESS\] /) {
|
elsif ($ThisLine =~ /already up-to-date/) {
|
||||||
$summarySuccess++;
|
$summaryUpToDate++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
### fill hash table with headings and summary counts
|
### fill hash table with headings and summary counts
|
||||||
if ($summaryStatusNeedsUpdating > 0) {
|
if ($summaryUpdated > 0) {
|
||||||
$reportHash{"Entries needing updates"} = $summaryStatusNeedsUpdating;
|
$reportHash{"Entries successfully updated"} = $summaryUpdated;
|
||||||
}
|
}
|
||||||
if ($summarySuccess > 0) {
|
if ($summaryUpToDate > 0) {
|
||||||
$reportHash{"Entries successfully updated"} = $summarySuccess;
|
$reportHash{"Entries already up-to-date"} = $summaryUpToDate;
|
||||||
}
|
}
|
||||||
if ($summaryStatusUpToDate > 0) {
|
if ($summaryInvalidHost > 0) {
|
||||||
$reportHash{"Entries already up-to-date"} = $summaryStatusUpToDate;
|
$reportHash{"Undefined hosts"} = $summaryInvalidHost;
|
||||||
|
}
|
||||||
|
if ($summaryFailedUpdate > 0) {
|
||||||
|
$reportHash{"Hosts failed to update"} = $summaryFailedUpdate;
|
||||||
}
|
}
|
||||||
if ($summaryErr > 0) {
|
if ($summaryErr > 0) {
|
||||||
$reportHash{"Errors encountered"} = $summaryErr;
|
$reportHash{"Other errors"} = $summaryErr;
|
||||||
}
|
}
|
||||||
|
|
||||||
### print hash table
|
### print hash table
|
||||||
@ -66,40 +73,23 @@ if ($detailLevel == 0) {
|
|||||||
### a summary count
|
### a summary count
|
||||||
elsif ($detailLevel >= 1 && $detailLevel <= 4) {
|
elsif ($detailLevel >= 1 && $detailLevel <= 4) {
|
||||||
while (defined(my $ThisLine = <STDIN>)) {
|
while (defined(my $ThisLine = <STDIN>)) {
|
||||||
if ($ThisLine =~ /\-- \[ERROR\] /) {
|
if ($ThisLine =~ /ERROR: /) {
|
||||||
print $ThisLine;
|
print $ThisLine;
|
||||||
}
|
}
|
||||||
elsif ($ThisLine =~ /\-- \[STATUS\] /) {
|
elsif ($ThisLine =~ /WARNING: Cannot find existing/) {
|
||||||
print $ThisLine;
|
print $ThisLine;
|
||||||
}
|
}
|
||||||
elsif ($ThisLine =~ /\-- \[SUCCESS\] /) {
|
elsif ($ThisLine =~ /SUCCESS: /) {
|
||||||
print $ThisLine;
|
print $ThisLine;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
### Level 5 is similiar to levels 1-4 except it also reports informational
|
### Any level 5 or above will echo the entire log. The log itself is purposefully terse
|
||||||
### messages such as the current working IP address and hostnames being
|
### so while this level of detail is likely rarely needed, it is still not an overwhelming
|
||||||
### checked. This is useful when verifying the cfddns.sh script's operation.
|
### level of detail.
|
||||||
elsif ($detailLevel == 5) {
|
### Generally, however, using this level of detail should only be done if you cannot view
|
||||||
while (defined(my $ThisLine = <STDIN>)) {
|
### the actual log file directly for whatever reason. The actual log file is colour-coded
|
||||||
if ($ThisLine =~ /\-- \[ERROR\] /) {
|
### for easier debugging.
|
||||||
print $ThisLine;
|
|
||||||
}
|
|
||||||
elsif ($ThisLine =~ /\-- \[STATUS\] /) {
|
|
||||||
print $ThisLine;
|
|
||||||
}
|
|
||||||
elsif ($ThisLine =~ /\-- \[SUCCESS\] /) {
|
|
||||||
print $ThisLine;
|
|
||||||
}
|
|
||||||
elsif ($ThisLine =~ /\-- \[INFO\] /) {
|
|
||||||
print $ThisLine;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
### Any level above 5 will echo the entire log including the debugging notes
|
|
||||||
### within the script meant for troubleshooting. Using this level of detail
|
|
||||||
### should only be done if you cannot view the actual log file directly for
|
|
||||||
### whatever reason. The actual log file is colour-coded for easier debugging.
|
|
||||||
elsif ($detailLevel > 5) {
|
elsif ($detailLevel > 5) {
|
||||||
while (defined(my $ThisLine = <STDIN>)) {
|
while (defined(my $ThisLine = <STDIN>)) {
|
||||||
print $ThisLine;
|
print $ThisLine;
|
||||||
|
Loading…
Reference in New Issue
Block a user