Bacula-users

[Bacula-users] Updates to bacula_mail_summary.sh

2009-03-26 15:57:56
Subject: [Bacula-users] Updates to bacula_mail_summary.sh
From: John Lockard <jlockard AT umich DOT edu>
To: bacula-users AT lists.sourceforge DOT net
Date: Thu, 26 Mar 2009 15:50:45 -0400
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

<Prev in Thread] Current Thread [Next in Thread>