Attached, please find updates to bacula_mail_summary.sh which
was in the examples/reports directory in the source distribution.
I run this script once a week, after the log has been rotated
by my systems logrotate script.
I've tweaked the display formatting quite a bit. Rather than
displaying the full job level I've done:
F = Full
D = Differential
I = Incrmental
I2F = Full (upgraded from Incremental)
D2F = Full (upgraded from Incremental)
For completion status I've shorted these as well to:
OK = OK
OK-Verify = Verify OK
OK-Warn = Ok -- with warnings
M-OK = Migration OK
M-Error = Migration Error
I've changed the Start and End times to include the day
and month, to cover jobs that run long (more than 24 hours).
Sample output (excerpts):
--------------------
Client Status Type StartTime EndTime Files
Bytes
homer OK-Warn I 01-Mar-22:00:03 01-Mar-22:20:28 1,049
637,371,688 (637.3 MB)
wiggum OK I 02-Mar-02:01:03 02-Mar-02:02:11 26
73,035 (73.03 KB)
harvbannister OK-Warn F 02-Mar-02:30:02 02-Mar-02:40:16 298,076
8,937,733,774 (8.937 GB)
dataless OK F 02-Mar-03:00:00 02-Mar-06:13:48 212,695
129,185,742,611 (129.1 GB)
bart OK I2F 06-Mar-20:00:02 06-Mar-22:59:04 1,484,236
91,154,841,692 (91.15 GB)
homer OK-Warn I2F 06-Mar-22:59:06 07-Mar-07:01:35 2,147,092
765,068,201,965 (765.0 GB)
mrlombardo OK D2F 12-Mar-21:00:00 12-Mar-23:48:29 1,277
60,076,971,159 (60.07 GB)
tibor Canceled F 12-Mar-23:50:31 13-Mar-10:32:35 0 0
(0 B)
tibor M-OK F 17-Mar-17:19:42 17-Mar-17:21:09 58,134
2,477,312,248 (2.477 GB)
tibor M-Error F 17-Mar-17:23:01 17-Mar-17:23:01 0 0
(0 B)
bart OK D 17-Mar-20:00:02 17-Mar-20:10:35 756
535,593,805 (535.5 MB)
sherri Error F 19-Mar-12:25:59 20-Mar-22:24:01 147,641
1,390,032,423,344 (1.390 TB)
centra OK-Warn D 23-Mar-17:00:03 23-Mar-17:00:21 0 0
(0 B)
adilhoxha OK I 23-Mar-18:30:56 23-Mar-18:36:23 65
3,456,362,879 (3.456 GB)
--------------------
I hope someone finds this to be useful.
-John
----- start bacula_mail_summary.sh -----
#!/bin/sh
# $Id: bacula_mail_summary.sh,v 1.5 2009/03/26 19:04:11 root Exp $
# $Locker: $
# This script is to create a summary of the job notifications from bacula
# and send it to people who care.
#
# For it to work, you need to have all Bacula job report
# logging to a file, edit LOGFILE to match your setup.
# This should be run after all backup jobs have finished.
# Tested with bacula-2.4.4
# Some improvements by: John Lockard <jlockard AT umich DOT edu>
# (University of Michigan - School of Information)
# Changed Date format to better sort
# Reformatted Levels to fit better
# Caught more job completion types
# Added From addressing to the outgoing email
# Removed log rotation. I'll leave that up to a system utility (logrotate)
# Added partial date to Start and End times to cover long running jobs
# Some improvements by: Andrey Yakovlev <freedom AT kiev.farlep DOT net> (ISP
Farlep)
# Contributed by Andrew J. Millar <andrew AT alphajuliet.org DOT uk>
# Patched by Andrey A. Yakovlev <freedom AT kiev.farlep DOT net>
# Use awk to create the report, pass to column to be
# formatted nicely, then on to mail to be sent to
# people who care.
LOGFILE='/var/log/bacula/standard'
EMAIL_TO="backup-admins AT example DOT com"
EMAIL_FROM="bacula-server AT example DOT com"
#EMAIL_FROM=${EMAIL_TO}
EMAIL_SUBJECT="Bacula Job Summary: `date +'%F - %a'`"
#---------------------------------------------------------------------
awk -F\:\ 'BEGIN {
print "Client Status Type StartTime EndTime Files Bytes"
}
/director-dir: New file:/ {
print $3
}
/director-dir: File:/ {
print $3
}
/Client/ {
CLIENT=$2; sub(/"/, "", CLIENT) ; sub(/".*$/, "", CLIENT)
}
/Backup Level/ {
TYPE=$2 ;
sub(/,.*$/, "", TYPE)
sub(/Full \(upgraded from Incremental\)/, "I2F", TYPE);
sub(/Full \(upgraded from Differential\)/, "D2F", TYPE);
sub(/Full/, "F", TYPE);
sub(/Incremental/, "I", TYPE);
sub(/Differential/, "D", TYPE);
}
/Start time/ {
STARTTIME=$2;
sub(/-[0-9]* /, "-", STARTTIME)
sub(/^ */, "", STARTTIME)
gsub(/ /, "-", STARTTIME)
}
/End time/ {
ENDTIME=$2;
sub(/-[0-9]* /, "-", ENDTIME)
sub(/^ */, "", ENDTIME)
gsub(/ /, "-", ENDTIME)
}
/Files Examined/ {
SDFILES=$2
SDBYTES=0
}
/SD Files Written/ {
SDFILES=$2
}
/SD Bytes Written/ {
SDBYTES=$2
}
/Termination/ {
TERMINATION=$2 ;
sub(/Backup/, "", TERMINATION) ;
gsub(/\*\*\*/, "", TERMINATION) ;
sub(/Verify OK/, "OK-Verify", TERMINATION) ;
sub(/OK -- with warnings/, "OK-Warn", TERMINATION) ;
sub(/Migration OK/, "M-OK", TERMINATION);
sub(/Migration Error/, "M-Error", TERMINATION);
sub(/y[ ]/, "y-", TERMINATION) ;
printf "%s %s %s %s %s %s %s\n",
CLIENT,TERMINATION,TYPE,STARTTIME,ENDTIME,SDFILES,SDBYTES}' ${LOGFILE} | \
column -t -x | \
mail -s "${EMAIL_SUBJECT}" ${EMAIL_TO} -- -F ${EMAIL_FROM}
#
# That's all folks
----- end bacula_mail_summary.sh -----
--
"Four Horsemen Of The Apocalypse Unveil New Alert System"
- Subject of recent SPAM message
-------------------------------------------------------------------
John M. Lockard | U of Michigan - School of Information
Unix and Security Admin | 1214 SI North - 1075 Beal Ave.
jlockard AT umich DOT edu | Ann Arbor, MI 48109-2112
www.umich.edu/~jlockard | 734-615-8776 | 734-647-8045 FAX
-------------------------------------------------------------------
------------------------------------------------------------------------------
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users
|