Compare commits
4 Commits
ff3f9f4eba
...
37449382b2
Author | SHA1 | Date |
---|---|---|
Asif Bacchus | 37449382b2 | |
Asif Bacchus | 3eff04c046 | |
Asif Bacchus | d0a8df5b70 | |
Asif Bacchus | ab9689d77f |
|
@ -0,0 +1,15 @@
|
|||
### Rotate backup log file
|
||||
|
||||
# location of log file (-l parameter of script file)
|
||||
/path/to/backup.log {
|
||||
|
||||
# rotate log file weekly -- you could also use 'daily', 'monthly' or
|
||||
# specify a size using 'size 100k', for example
|
||||
weekly
|
||||
|
||||
# keep 4 weeks of old logs (4 files) and delete older ones
|
||||
rotate 4
|
||||
|
||||
# compress old log files using gzip (default)
|
||||
compress
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
# Location of your script's log file, -l parameter
|
||||
LogFile = /path/to/your/backup.log
|
||||
|
||||
# Format of logrotate archives for your script. Example assumes compression and
|
||||
# extension preservation
|
||||
Archive = /path/to/your/logfile.ext.?.gz
|
||||
|
||||
# Apply the correct date/time filtering to match the format of the script's log
|
||||
# We are using a custom pl script in /etc/logwatch/scripts/shared/
|
||||
# You don't need to change this unless you have altered the 'stamp' variable in
|
||||
# the script in which case you will want to update the regex in the custom pl
|
||||
# script below
|
||||
*sqFullStampAnywhere
|
|
@ -0,0 +1,9 @@
|
|||
# Name of the logfile group without any extension
|
||||
LogFile = backup
|
||||
|
||||
# Heading displayed on Logwatch's report for this service
|
||||
Title = "System and NextCloud Backup"
|
||||
|
||||
# Override the detail level for this service
|
||||
# Remember the levels are: 0, 1-4, 5, 6+
|
||||
# Detail = 0
|
|
@ -0,0 +1,112 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
#############################################################################
|
||||
# $Id$
|
||||
#############################################################################
|
||||
# Log: Backup script (backup)
|
||||
# Revision 1.0 2018/10/16
|
||||
# Written by Asif Bacchus
|
||||
#############################################################################
|
||||
|
||||
|
||||
use strict;
|
||||
|
||||
### Get Logwatch detail level
|
||||
my $detailLevel = $ENV{'LOGWATCH_DETAIL_LEVEL'} || 0;
|
||||
|
||||
|
||||
### Declare variables
|
||||
my $summaryErr;
|
||||
my $summaryWarn;
|
||||
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 = <STDIN>)) {
|
||||
if ($ThisLine =~ /\-- \[ERROR\] /) {
|
||||
$summaryErr++;
|
||||
}
|
||||
elsif ($ThisLine =~ /\-- \[WARNING\] /) {
|
||||
$summaryWarn++;
|
||||
}
|
||||
elsif ($ThisLine =~ /All processes completed successfully/) {
|
||||
$summarySuccess++;
|
||||
}
|
||||
}
|
||||
|
||||
### fill hash table with headings and summary counts
|
||||
if ($summarySuccess > 0) {
|
||||
$reportHash{"All processes successfully completed:"} = $summarySuccess;
|
||||
}
|
||||
if ($summaryWarn > 0) {
|
||||
$reportHash{"Warnings issued:"} = $summaryStatusUpToDate;
|
||||
}
|
||||
if ($summaryErr > 0) {
|
||||
$reportHash{"Errors encountered:"} = $summaryErr;
|
||||
}
|
||||
|
||||
### print hash table
|
||||
foreach $key (sort keys %reportHash) {
|
||||
print "$key: $reportHash{$key}\n";
|
||||
}
|
||||
}
|
||||
### Levels 1-4 provide the actual error, warning and success messages instead
|
||||
### of a summary count
|
||||
elsif ($detailLevel >= 1 && $detailLevel <= 4) {
|
||||
while (defined(my $ThisLine = <STDIN>)) {
|
||||
if ($ThisLine =~ /\-- \[ERROR\] /) {
|
||||
print $ThisLine;
|
||||
}
|
||||
elsif ($ThisLine =~ /\-- \[WARNING\] /) {
|
||||
print $ThisLine;
|
||||
}
|
||||
elsif ($ThisLine =~ /\-- \[SUCCESS\] /) {
|
||||
print $ThisLine;
|
||||
}
|
||||
}
|
||||
}
|
||||
### Level 5 is similiar to levels 1-4 except it also reports informational
|
||||
### messages such as the location of script created files, variable checks,
|
||||
### etc. This is useful when verifying the script's operation.
|
||||
elsif ($detailLevel == 5) {
|
||||
while (defined(my $ThisLine = <STDIN>)) {
|
||||
if ($ThisLine =~ /\-- \[ERROR\] /) {
|
||||
print $ThisLine;
|
||||
}
|
||||
elsif ($ThisLine =~ /\-- \[WARNING\] /) {
|
||||
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) {
|
||||
while (defined(my $ThisLine = <STDIN>)) {
|
||||
print $ThisLine;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
### Exit gracefully
|
||||
exit (0);
|
||||
|
||||
# vi: shiftwidth=3 tabstop=3 et
|
||||
# Local Variables:
|
||||
# mode: perl
|
||||
# perl-indent-level: 3
|
||||
# indent-tabs-mode: nil
|
||||
# End:
|
|
@ -0,0 +1,37 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
##########################################################################
|
||||
# $Id$
|
||||
##########################################################################
|
||||
|
||||
###############################################################################
|
||||
## Filter dates in full-date-time international format, surrounded by square
|
||||
## brackets located anywhere on a given line
|
||||
## Format: '[%Y-%m-%d %H:%M:%S]'
|
||||
###############################################################################
|
||||
|
||||
use Logwatch ':dates';
|
||||
|
||||
my $Debug = $ENV{'LOGWATCH_DEBUG'} || 0;
|
||||
|
||||
### Specify the format of the date/time stamp itself
|
||||
$SearchDate = TimeFilter('%Y-%m-%d %H:%M:%S');
|
||||
|
||||
if ( $Debug > 5 ) {
|
||||
print STDERR "DEBUG: Inside FullDateTime...\n";
|
||||
print STDERR "DEBUG: Looking For: " . $SearchDate . "\n";
|
||||
}
|
||||
|
||||
while (defined($ThisLine = <STDIN>)) {
|
||||
### specify the regex that defines how to find 'SearchDate'
|
||||
if ($ThisLine =~ m/\[$SearchDate\] /o) {
|
||||
print $ThisLine;
|
||||
}
|
||||
}
|
||||
|
||||
# vi: shiftwidth=3 syntax=perl tabstop=3 et
|
||||
# Local Variables:
|
||||
# mode: perl
|
||||
# perl-indent-level: 3
|
||||
# indent-tabs-mode: nil
|
||||
# End:
|
Loading…
Reference in New Issue