1#!/usr/bin/env bash
2#
3# This script will generate list of outdated clients
4# Create folders /usr/local/share/burp-custom and /var/log/burp-custom
5# chmod +x the sh file
6# Locate this file in  /usr/local/share/burp-custom/burp-custom-reports.sh
7# link to if desired ln -s /usr/local/share/burp-custom/burp-custom-reports.sh /usr/local/bin/bur-custom-reports.sh
8
9outdated=`date -d "1 days ago" +%F`
10sendto=emailto@server.com
11sendfrom=emailsender@from.com
12timestamp=`date +%F-%H-%M`
13logfolder=/var/log/burp-custom/
14
15
16#Variable to use on outdated hosts function
17repoutdfile=$logfolder/burp-outdated.$outdated.$timestamp.log
18#Variable to use for not outdated hosts function
19repokfile=$logfolder/burp-ok.$outdated.$timestamp.log
20
21logsclean(){
22    find $logfolder -name "*.log" -type f -mtime +30 -delete
23}
24
25make_dirs() {
26    if [[ ! -d $1 ]] ; then  mkdir -p $1 ; fi
27}
28
29make_dirs "$logfolder"
30
31report_outdated(){
32    date_backup=`echo $1 | sed -e 's/\s\+/ /g' | cut -d' ' -f6`
33    echo "line is $1"
34    echo "date_backup is $date_backup"
35    if [[ "$date_backup" < "$outdated" ]] ; then
36        echo "$1" >> $repoutdfile
37	else
38	    echo "$1" >> $repokfile
39    fi
40}
41
42
43reports(){
44    report_outdated "$1"
45}
46
47send_email_report(){
48    cat $1 | mail -s "$2" $sendto -aFrom:$sendfrom
49}
50
51
52# example output line:
53# hosname       idle           last backup: 0000023 2015-04-10 16:04:01
54# read by line report from burp
55burp -a S | grep -i "last backup" | while read -r line; do reports "$line" ; done
56
57echo "finishing and sending email"
58#Send email using function, parse file and then subject inside "subject line"
59send_email_report $repoutdfile "Outdated hosts older than $outdated on $HOSTNAME"
60send_email_report $repokfile "Burp Hosts ok newer than $outdated on $HOSTNAME"
61
62#Clean old logs
63logsclean
64